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:

Procedimiento

  1. Instale Herramientas de la CLI de Kubernetes para vSphere.
  2. 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.
  3. 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
    Donde 192.197.2.65 es el contexto de Supervisor y tkg2-cluster-namespace es el contexto para el espacio de nombres de vSphere donde planea aprovisionar el clúster de TKG.
  4. 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
  5. 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.
  6. 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 formato tkg2-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 comando kubectl describe storageclasses también devuelve las clases de almacenamiento disponibles, pero requiere permisos de administrador de vSphere.
  7. 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.
  8. Disetique el archivo YAML para aprovisionar el clúster de TKG.
    1. Determine el tipo de clúster que creará y revise su API y sus funciones:
    2. Comience con una de las YAML de ejemplo para aprovisionar el clúster de.
    3. Guarde el archivo YAML como tkg2-cluster-1.yaml o un formato similar.
    4. 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
    5. 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
    6. 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.
  9. 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
  10. 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
  11. 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.
  12. 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.
  13. 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
    Donde 192.197.2.65 es el contexto de Supervisor, tkg2-cluster-namespace es el contexto de espacio de nombres de vSphere y tkg2-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
  14. Compruebe los recursos del clúster de TKG.
    kubectl get nodes
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  15. Ejecute el clúster de TKG mediante la implementación de un pod de prueba y compruebe que funciona según lo esperado.