El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe la configuración para aprovisionar un clúster de Kubernetes de nivel de producción de Cisco Intersight (SaaS) con el uso de Cisco Intersight™ Kubernetes Service (IKS).
Kubernetes, en los últimos tiempos, se ha convertido en una herramienta de gestión de contenedores de facto, ya que las organizaciones tienden a invertir más en la modernización de aplicaciones con soluciones Containerized. Con Kubernetes, los equipos de desarrollo pueden implementar, administrar y escalar sus aplicaciones en contenedores con facilidad, haciendo que las innovaciones sean más accesibles para sus conductos de entrega continua.
Sin embargo, Kubernetes conlleva retos operativos, ya que requiere tiempo y conocimientos técnicos para su instalación y configuración.
La instalación de Kubernetes y los diferentes componentes de software necesarios, la creación de clústeres, la configuración del almacenamiento, las redes y la seguridad, junto con las operaciones (por ejemplo, la actualización y revisión de errores de seguridad críticos) requieren una importante inversión continua de capital humano.
Introduzca IKS, una solución SaaS lista para usar para gestionar Kubernetes uniformes y de calidad de producción en cualquier lugar. Para obtener más información sobre las capacidades de IKS, consulte este enlace aquí.
Para este documento, la idea es mostrar la capacidad de IKS de integrarse sin problemas con su infraestructura en las instalaciones, ejecutando VMware ESXi y vCenter.
Con unos pocos clics, puede implementar un clúster de Kubernetes de nivel de producción en su infraestructura VMware.
Sin embargo, para ello, debe integrar el vCenter in situ con Intersight, que se conoce como "reclamación de un objetivo", donde el objetivo es vCenter.
Necesitaría un dispositivo virtual Cisco Intersight Assist, que le ayude a agregar destinos de terminales a Cisco Intersight. Puede instalar Intersight Assist mediante el OVA de bootstrap que está disponible en el sitio web oficial de Cisco.
Para limitar el alcance de este documento, no nos centraremos en la instalación del dispositivo virtual Cisco Intersight Assist. Sin embargo, puede echar un vistazo al proceso aquí
Cisco recomienda que tenga conocimiento sobre estos temas:
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
Dado que la implementación de un dispositivo Cisco Intersight está fuera del alcance de este documento.
Suponemos que ya dispone de una cuenta Intersight en funcionamiento y que ha solicitado correctamente un vCenter/Esxi en las instalaciones.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Las políticas permiten una gestión simplificada, ya que abstraen la configuración en plantillas reutilizables.
A continuación se enumeran algunas de las políticas que debemos configurar. Tenga en cuenta que todas estas políticas se crearían en la sección Configurar > Políticas y configurar >> Conjuntos en Intersight.
También puede ver la ruta de la política en la parte superior de cada captura de pantalla, que se muestra a continuación.
Este grupo de IP se utilizará para las direcciones IP de las máquinas virtuales de los nodos de trabajo y control cuando se inicie en el host de ESXi.
Aquí define el Pod y la red de servicios CIDR, para la red interna dentro del clúster de Kubernetes.
Servicios y red CIDR
Esta política define su configuración de NTP y DNS.
Configuración de NTP y DNS
Con esta directiva, puede definir la configuración de proxy para el tiempo de ejecución del contenedor de docker.
Configuración de proxy para Docker
En esta directiva, definirá la configuración necesaria en las máquinas virtuales implementadas como nodos maestros y de trabajo.
Configuración de las VM utilizadas
Una vez que hayamos creado las políticas anteriores, las vincularíamos a un perfil que luego podríamos implementar.
La implementación de la configuración mediante políticas y perfiles abstrae la capa de configuración para que se pueda implementar repetidamente rápidamente.
Puede copiar este perfil y crear uno nuevo con pocas o más modificaciones en las políticas subyacentes en minutos, a uno o más grupos de Kubernetes en una fracción de tiempo necesario con un proceso manual.
Introduzca en el campo Nombre y defina las etiquetas.
Configuración de perfil con nombre y etiquetas
Establezca las políticas Pool, Node OS, Network CIDR. También debe configurar un ID de usuario y una clave SSH (pública).
Su clave privada correspondiente se utilizaría para SSH en los nodos Master y Worker.
Configuración de perfil con políticas asignadas
Configuración del plano de control: Puede definir cuántos nodos maestros necesitará en el plano de control.
Configuración del nodo maestro
Configure los nodos Worker: En función de los requisitos de la aplicación, puede ampliar o reducir los nodos de los trabajadores.
Configuración de nodos de trabajo
Configurar el complemento. A partir de ahora, puede implementar automáticamente, Kubernetes Dashboard y Graffana con monitoreo Prometheus.
En el futuro, podrá agregar más complementos que podrá implementar automáticamente mediante IKS.
Agregar complementos (si los hay)
Consulte el resumen y haga clic en Deploy.
Pantalla Resumen de creación de perfil
Use esta sección para confirmar que su configuración funciona correctamente.
En la parte superior derecha, puede realizar un seguimiento del progreso de la implementación.
Verificar mediante la GUI de IKS
A medida que avanza la implementación, puede ver los nodos de trabajadores y maestros de Kubernetes en el vCenter.
El clúster IKS se está instalando en vCenter
En caso de que necesite ver pasos detallados para la implementación, puede profundizar más en la ejecución.
Ejecución de creación de perfiles
Puede conectarse al clúster de Kubernetes de las siguientes maneras:
Usando el archivo KubeConfig, que puede descargar desde Operate > Kubernetes > Select the options on the far right.
Necesita tener KubeCtl instalado en la estación de trabajo de administración, desde donde desea acceder a este clúster.
Descargar el archivo KubeConfig desde IKS
También puede introducir directamente SSH en el nodo maestro, utilizando aplicaciones SSH como Putty con las credenciales y la clave privada configuradas en el momento de la implementación
Si implementa 'Kubernetes Dashboard' como un complemento, puede usar eso también, para implementar aplicaciones directamente usando la GUI.
Para ver más detalles, consulte la sección "Acceso a los clústeres de Kubernetes", aquí:
Una vez que pueda conectarse al clúster de Kubernetes, mediante kubeCtl, puede utilizar los siguientes comandos para verificar si el clúster tiene todos los componentes instalados y en ejecución.
Compruebe que los nodos del clúster están en estado 'preparado'.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubek8scl1-caaskubew-6ba6bf794e Ready 6d4h v1.19.5
kubek8scl1-caaskubew-caa202993e Ready 6d4h v1.19.5
kubek8scl1-controlpl-b8a50f8235 Ready master 6d4h v1.19.5
Verifique el estado de las vainas que se crearon en el momento de la instalación de los componentes esenciales en el clúster.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep apply-
apply-ccp-monitor-2b7tx 0/1 Completed 0 6d3h
apply-cloud-provider-qczsj 0/1 Completed 0 6d3h
apply-cni-g7dcc 0/1 Completed 0 6d3h
apply-essential-cert-ca-jwdtk 0/1 Completed 0 6d3h
apply-essential-cert-manager-bg5fj 0/1 Completed 0 6d3h
apply-essential-metallb-nzj7h 0/1 Completed 0 6d3h
apply-essential-nginx-ingress-8qrnq 0/1 Completed 0 6d3h
apply-essential-registry-f5wn6 0/1 Completed 0 6d3h
apply-essential-vsphere-csi-tjfnq 0/1 Completed 0 6d3h
apply-kubernetes-dashboard-rslt4 0/1 Completed 0 6d3h
Verifique el estado del pod del operador ccp-helm que administra el helm que se ejecuta localmente e instala los complementos.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get helmcharts.helm.ccp.----.com -A
NAMESPACE NAME STATUS VERSION INSTALLED VERSION SYNCED
iks ccp-monitor INSTALLED 0.2.61-helm3
iks essential-cert-ca INSTALLED 0.1.1-helm3
iks essential-cert-manager INSTALLED v1.0.2-cisco1-helm3
iks essential-metallb INSTALLED 0.12.0-cisco3-helm3
iks essential-nginx-ingress INSTALLED 2.10.0-cisco2-helm3
iks essential-registry INSTALLED 1.8.3-cisco10-helm3
iks essential-vsphere-csi INSTALLED 1.0.1-helm3
iks kubernetes-dashboard INSTALLED 3.0.2-cisco3-helm3
iks vsphere-cpi INSTALLED 0.1.3-helm3
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ helm ls -A
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /home/iksadmin/.kube/config
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
addon-operator iks 1 2021-11-05 07:45:15.44180913 +0000 UTC deployed ccp-helm-operator-9.1.0-alpha.44.g415a48c4be1.0
ccp-monitor iks 1 2021-11-05 08:23:11.309694887 +0000 UTC deployed ccp-monitor-0.2.61-helm3
essential-cert-ca iks 1 2021-11-05 07:55:04.409542885 +0000 UTC deployed cert-ca-0.1.1-helm3 0.1.0
essential-cert-manager iks 1 2021-11-05 07:54:41.433212634 +0000 UTC deployed cert-manager-v1.0.2-cisco1-helm3 v1.0.2
essential-metallb iks 1 2021-11-05 07:54:48.799226547 +0000 UTC deployed metallb-0.12.0-cisco3-helm3 0.8.1
essential-nginx-ingress iks 1 2021-11-05 07:54:46.762865131 +0000 UTC deployed ingress-nginx-2.10.0-cisco2-helm3 0.33.0
essential-registry iks 1 2021-11-05 07:54:36.734982103 +0000 UTC deployed docker-registry-1.8.3-cisco10-helm3 2.7.1
essential-vsphere-csi kube-system 1 2021-11-05 07:54:58.168305242 +0000 UTC deployed vsphere-csi-1.0.1-helm3 v2.0.0
kubernetes-dashboard iks 1 2021-11-05 07:55:10.197905183 +0000 UTC deployed kubernetes-dashboard-3.0.2-cisco3-helm3 2.1.0
vsphere-cpi kube-system 1 2021-11-05 07:54:38.292088943 +0000 UTC deployed vsphere-cpi-0.1.3-helm3 1.1.0
Verifique el estado de los grupos de dispositivos esenciales* que administran los complementos esenciales (núcleo), instalados de forma predeterminada, en cada clúster de arrendatarios IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep ^essential-
essential-cert-manager-6bb7d776d-tpkhj 1/1 Running 0 6d4h
essential-cert-manager-cainjector-549c8f74c-x5sjp 1/1 Running 0 6d4h
essential-cert-manager-webhook-76f596b686-drf79 1/1 Running 0 6d4h
essential-metallb-controller-6557847d57-djs9b 1/1 Running 0 6d4h
essential-metallb-speaker-7t54v 1/1 Running 0 6d4h
essential-metallb-speaker-ggmbn 1/1 Running 0 6d4h
essential-metallb-speaker-mwmfg 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-k2hsw 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-kfkm9 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-defaultbackend-695fbj4mnd 1/1 Running 0 6d4h
essential-registry-docker-registry-75b84457f4-4fmlh 1/1 Running 0 6d4h
Verifique el estado de los servicios y el equilibrador de carga implementado en el espacio de nombres IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get svc -n iks
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ccp-monitor-grafana ClusterIP 192.168.23.161 80/TCP 6d3h
ccp-monitor-prometheus-alertmanager ClusterIP 192.168.23.70 80/TCP 6d3h
ccp-monitor-prometheus-kube-state-metrics ClusterIP None 80/TCP 6d3h
ccp-monitor-prometheus-node-exporter ClusterIP None 9100/TCP 6d3h
ccp-monitor-prometheus-pushgateway ClusterIP 192.168.23.130 9091/TCP 6d3h
ccp-monitor-prometheus-server ClusterIP 192.168.23.95 443/TCP 6d3h
essential-cert-manager ClusterIP 192.168.23.178 9402/TCP 6d4h
essential-cert-manager-webhook ClusterIP 192.168.23.121 443/TCP 6d4h
essential-nginx-ingress-ingress-nginx-controller LoadBalancer 192.168.23.26 192.168.10.11 80:31121/TCP,443:31753/TCP 6d4h
essential-nginx-ingress-ingress-nginx-defaultbackend ClusterIP 192.168.23.205 80/TCP 6d4h
essential-registry-docker-registry ClusterIP 192.168.23.12 443/TCP 6d4h
kubernetes-dashboard ClusterIP 192.168.23.203 443/TCP 6d4h
En esta sección encontrará información que puede utilizar para solucionar problemas de configuración.
En caso de que una vaina determinada no aparezca, puede utilizar estos comandos para profundizar en la causa.
Syntax : kubectl describe pod -n
Example :
kubectl describe pod vsphere-csi-controller-7d56dc7c8-qgbhw -n kube-system
Name: vsphere-csi-controller-7d56dc7c8-qgbhw
Namespace: kube-system
Priority: 0
Node: kubek8scl1-controlpl-eb44cf1bf3/192.168.58.11
Start Time: Tue, 28 Sep 2021 02:39:41 +0000
Labels: app=vsphere-csi-controller
pod-template-hash=7d56dc7c8
role=vsphere-csi
Annotations:
Status: Running
IP: 192.168.58.11
IPs:
IP: 192.168.58.11
Controlled By: ReplicaSet/vsphere-csi-controller-7d56dc7c8
Containers:
csi-attacher:
Container ID: docker://60002693136d00f3b61237304a1fbc033df92f86dc1352965328fe3c4d264fdb
Image: registry.ci.x----x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher:v2.0.0
Image ID: docker-pullable://registry.ci.x------x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher@sha256:71e2b9b5b8c52d789ef89ba901c8fba270fa623789a988c77c52ebb0257bf723
Port:
Host Port:
Args:
--v=4
--timeout=300s
--csi-address=$(ADDRESS)
--leader-election
State: Running
Started: Thu, 30 Sep 2021 05:44:11 +0000
Last State: Terminated
Reason: Error
Message: Lost connection to CSI driver, exiting
Exit Code: 255
Started: Thu, 30 Sep 2021 05:38:20 +0000
Finished: Thu, 30 Sep 2021 05:39:06 +0000
Ready: True
Restart Count: 531
X----------------------- Log Text Omitted ---------X----------------------X--------------------X
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
18-Jan-2022
|
Versión inicial |