Siga este flujo de trabajo para aprovisionar un clúster de servicio TKG de forma declarativa mediante los comandos kubectl y una especificación de clúster definida en YAML.
Este flujo de trabajo admite el aprovisionamiento de un clúster de TKG de forma declarativa mediante kubectl y YAML.
Requisitos previos
Compruebe o complete los siguientes requisitos previos antes de iniciar el flujo de trabajo de aprovisionamiento:
- Instale o actualice el entorno a la versión de Supervisor más reciente. Consulte Ejecución de clústeres de Servicio TKG.
- Cree o actualice una biblioteca de contenido con las versiones de Tanzu Kubernetes más recientes. Consulte Administrar las versiones de Kubernetes para clústeres de Servicio TKG.
- Cree y configure un espacio de nombres de vSphere para alojar clústeres de TKG. Consulte Configurar espacios de nombres de vSphere para alojar clústeres de Servicio TKG.
Procedimiento
- Instale Herramientas de la CLI de Kubernetes para vSphere.
- Autentíquese con Supervisor mediante kubectl.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
Nota: El FQDN de Supervisor solo se puede utilizar si está habilitado. Consulte la documentación de configuración de Supervisor para obtener detalles. - Compruebe que el inicio de sesión en Supervisor se haya realizado correctamente.
Debe aparecer un error similar al siguiente:
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace
Donde192.197.2.65
es el contexto de Supervisor ytkg2-cluster-namespace
es el contexto para el espacio de nombres de vSphere donde planea aprovisionar el clúster de TKG. - Compruebe que el destino espacio de nombres de vSphere sea el contexto actual.
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE 192.197.2.65 192.197.2.65 wcp:10.197.154.65:[email protected] * tkg2-cluster-namespace 10.197.154.65 wcp:10.197.154.65:[email protected] tkg2-cluster-namespace
Si el espacio de nombres de vSphere de destino no es el contexto actual, cambie a él.kubectl config use-context tkg2-cluster-namespace
- Enumere las clases de máquina virtual que están disponibles en espacio de nombres de vSphere.
kubectl get virtualmachineclass
Solo puede utilizar las clases de máquina virtual que están enlazadas al espacio de nombres de destino. Si no ve ninguna clase de máquina virtual, compruebe que las clases de máquina virtual predeterminadas se hayan asociado con espacio de nombres de vSphere. Consulte también Corregir errores de clase de máquina virtual. - Obtiene las clases de almacenamiento de volumen persistente disponibles.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
El comando devuelve detalles sobre el espacio de nombres, incluida la clase de almacenamiento con el formatotkg2-storage-policy.storageclass.storage.k8s.io/requests.storage
. El primer token de la cadena es el nombre de la clase de almacenamiento, en este ejemplo,tkg2-storage-policy
. El comandokubectl describe storageclasses
también devuelve las clases de almacenamiento disponibles, pero requiere permisos de administrador de vSphere. - Lista de versiones de Tanzu Kubernetes disponibles:
Puede utilizar cualquiera de los siguientes comandos para realizar esta operación:
kubectl get tkr
kubectl get tanzukubernetesreleases
Este comando devuelve las TKR que están disponibles en este espacio de nombres de vSphere y muestra su compatibilidad con la instancia de Supervisor en la que se van a implementar. Solo puede utilizar esas versiones que devuelve este comando. Si no ve ninguna versión ni las versiones que desea, asegúrese de haber hecho lo siguiente: a) creó una biblioteca de contenido de TKR; b) sincronizó la biblioteca de contenido con los archivos OVA deseados; y c) asoció la biblioteca de contenido con el espacio de nombres de vSphere donde está aprovisionando el clúster de TKG. - Disetique el archivo YAML para aprovisionar el clúster de TKG.
- Determine el tipo de clúster que creará y revise su API y sus funciones:
- Clúster de Tanzu Kubernetes: Usar la API v1alpha3 del clúster de Tanzu Kubernetes
- Clúster: Usar la API v1beta1 del clúster
- Comience con una de las YAML de ejemplo para aprovisionar el clúster de.
- Guarde el archivo YAML como
tkg2-cluster-1.yaml
o un formato similar. - Rellene el archivo YAML con la información que recopiló a partir de los resultados de los comandos anteriores, entre los que se incluyen:
- El nombre del clúster, como
tkg2-cluster-1
- El espacio de nombres de vSphere de destino
- Las clases de máquina virtual enlazadas, como
guaranteed-medium
- Clase de almacenamiento para nodos de clúster y volúmenes persistentes
- El número de nodos de trabajo y plano de control (réplicas)
- La versión de Tanzu Kubernetes especificada por la cadena NAME de TKR, como
v1.25.7+vmware.3-fips.1-tkg.1
- El nombre del clúster, como
- Personalice el archivo YAML del clúster de TGK según sea necesario.
- Agregar volúmenes separados para componentes de renovación alta, como
containerd
- Especificar una clase de almacenamiento persistente predeterminada para los nodos del clúster y los volúmenes persistentes
- Personalizar las redes de clústeres, incluidos los CIDR de CNI, pod y servicio
- Agregar volúmenes separados para componentes de renovación alta, como
- Utilice un comprobador de sintaxis de YAML y compruebe que el archivo YAML sea válido.
El resultado de este paso es un YAML válido para aprovisionar el clúster de TKG. - Determine el tipo de clúster que creará y revise su API y sus funciones:
- Ejecute el siguiente comando para aprovisionar el clúster de TKG.
kubectl apply -f tkg2-cluster-1.yaml
Resultado esperado:tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
- Supervise el aprovisionamiento del clúster de TKG.
kubectl get tanzukubernetesclusters
kubectl get tkc
O bien, si crea un clúster de mediante la API v1beta1:kubectl get cluster
Inicialmente, el estado LISTO es False mientras se aprovisiona el clúster. Después de unos minutos, debe ser True.NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkg2-cluster-1 3 6 v1.25.7+vmware.3-fips.1-tkg.1 49m True True
Ejecute comandos adicionales para ver los detalles del clúster.kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
kubectl describe tanzukubernetescluster tkg2-cluster-1
- Supervise la implementación de nodos del clúster mediante vSphere Client.
En el inventario de vSphere para hosts y clústeres, debería ver las máquinas virtuales de nodos de clústeres que se están implementando en el espacio de nombres de vSphere de destino.
- Una vez que todos los nodos del clúster de TKG estén en estado LISTO, inicie sesión en el clúster mediante el complemento de vSphere para kubectl.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN \ --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
Por ejemplo:kubectl vsphere login --server=192.197.2.65 --vsphere-username [email protected] \ --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
Nota: El comando de inicio de sesión solo se ejecutará correctamente una vez que los nodos del plano de control se estén ejecutando y se haya iniciado el complemento del servicio de autenticación. Si los nodos de trabajo están en proceso de creación. Es posible que se detecte el inicio de sesión. Se recomienda iniciar sesión una vez que todos los nodos del clúster estén en estado LISTO. - Cambie el contexto al clúster de TKG para que sea el contexto actual.
Al iniciar sesión correctamente en el clúster de TKG, debería aparecer un mensaje similar al siguiente.
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace tkg2-cluster-1
Donde192.197.2.65
es el contexto de Supervisor,tkg2-cluster-namespace
es el contexto de espacio de nombres de vSphere ytkg2-cluster-1
es el contexto del clúster de TKG.Cambie al contexto del clúster de TKG.kubect config use-context tkg2-cluster-1
- Compruebe los recursos del clúster de TKG.
kubectl get nodes
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- Ejecute el clúster de TKG mediante la implementación de un pod de prueba y compruebe que funciona según lo esperado.