Para aprovisionar clústeres de Tanzu Kubernetes, se debe invocar a la API declarativa de servicio Tanzu Kubernetes Grid mediante kubectl y una especificación de clúster definida mediante YAML. Después de aprovisionar un clúster, puede usarlo e implementar cargas de trabajo en él mediante kubectl.

El flujo de trabajo proporciona un procedimiento de extremo a extremo para el proceso de aprovisionamiento del clúster. Cada uno de los pasos tiene vínculos con los que se puede obtener más información sobre la tarea específica.

Requisitos previos

Complete los siguientes requisitos previos:

Procedimiento

  1. Descargue e instale las Herramientas de la CLI de Kubernetes para vSphere. Consulte Descargar e instalar Herramientas de la CLI de Kubernetes para vSphere.
  2. Utilice complemento de vSphere para kubectl para autenticarse en clúster supervisor. Consulte Conectarse al clúster supervisor como usuario vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  3. Con kubectl, cambie el contexto a la instancia de espacio de nombres de vSphere donde tiene previsto aprovisionar el clúster de Tanzu Kubernetes.
    kubectl config get-contexts
    kubectl config use-context SUPERVISOR-NAMESPACE
    Por ejemplo:
    kubectl config use-context tkgs-cluster-ns
  4. Enumere los enlaces de clase de máquina virtual disponibles. Consulte Clases de máquina virtual para clústeres de Tanzu Kubernetes.
    Utilice el siguiente comando para enumerar todos los enlaces de clase de máquina virtual que están disponibles en espacio de nombres de vSphere donde se implementa el clúster.
    kubectl get virtualmachineclassbindings
    Nota: El comando kubectl get virtualmachineclasses enumera todas las clases de máquina virtual presentes en el clúster supervisor. Debido a que debe asociar las clases de máquina virtual con el espacio de nombres de vSphere, solo puede usar las clases de máquina virtual que están enlazadas al espacio de nombres de destino.
  5. Obtenga la clase de almacenamiento predeterminada disponible mediante la descripción del espacio de nombres.
    kubectl describe namespace SUPERVISOR-NAMESPACE
  6. Lista de versiones de Tanzu Kubernetes disponibles:
    Nota: Consulte la lista de versiones de versiones de Tanzu Kubernetes para obtener información sobre la compatibilidad. Consulte Comprobar la compatibilidad del clúster de Tanzu Kubernetes para actualizar.
    kubectl get tanzukubernetesreleases
    Nota: El comando kubectl get virtualmachineimages devuelve información genérica sobre las máquinas virtuales.
  7. Cree el archivo YAML para el aprovisionamiento de un clúster de Tanzu Kubernetes.
    1. Comience con uno de los archivos YAML de ejemplo. Consulte Ejemplos del aprovisionamiento de clústeres de Tanzu Kubernetes mediante la API de servicio Tanzu Kubernetes Grid v1alpha1.
      Por ejemplo, el siguiente archivo YAML aprovisiona un clúster mínimo con todos los valores predeterminados del clúster disponibles:
      apiVersion: run.tanzu.vmware.com/v1alpha1  #TKGS API endpoint
      kind: TanzuKubernetesCluster               #required parameter
      metadata:
        name: tkgs-cluster-1                     #cluster name, user defined
        namespace: tgks-cluster-ns               #vsphere namespace
      spec:
        distribution:
          version: v1.19                         #Resolves to latest TKR 1.19 version
        topology:
          controlPlane:
            count: 1                             #number of control plane nodes
            class: best-effort-medium            #vmclass for control plane nodes
            storageClass: vwt-storage-policy     #storageclass for control plane
          workers:
            count: 3                             #number of worker nodes
            class: best-effort-medium            #vmclass for worker nodes
            storageClass: vwt-storage-policy     #storageclass for worker nodes
      
    2. Utilice la información que resaltó de los resultados de los comandos anteriores para rellenar el YAML del clúster, incluido el espacio de nombres, la clase de almacenamiento y la clase de máquina virtual.
    3. Personalice el clúster según sea necesario haciendo referencia a la lista completa de parámetros de configuración del clúster. Consulte Parámetros de configuración para clústeres de Tanzu Kubernetes mediante la API de servicio Tanzu Kubernetes Grid v1alpha1.
    4. Guarde el archivo como tkgs-cluster-1.yaml o un formato similar.
  8. Ejecute el siguiente comando kubectl para aprovisionar el clúster.
    kubectl apply -f CLUSTER-NAME.yaml
    Por ejemplo:
    kubectl apply -f tkgs-cluster-1.yaml
    Resultado esperado:
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
  9. Supervise la implementación de nodos del clúster mediante kubectl. Consulte Supervisar el estado del clúster de Tanzu Kubernetes mediante kubectl.
    kubectl get tanzukubernetesclusters
    Resultado de ejemplo:
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE     PHASE
    tkgs-cluster-2   1               3        v1.19.7+vmware.1-tkg.1.c40d30d   7m59s   running
  10. Supervise la implementación de nodos del clúster mediante vSphere Client. Consulte Supervisar el estado del clúster de Tanzu Kubernetes mediante vSphere Client.
    Por ejemplo, en el inventario de vSphere, debería ver los nodos de máquina virtual que se implementan en el espacio de nombres.
  11. Ejecute comandos adicionales para verificar el aprovisionamiento de clústeres. Consulte Usar comandos operativos del clúster de Tanzu Kubernetes.
    Por ejemplo:
    kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
    Nota: Para obtener más soluciones de problemas, consulte Solución de problemas de clústeres de Tanzu Kubernetes.
  12. Con complemento de vSphere para kubectl, inicie sesión en el clúster. Consulte Conectarse a un clúster de Tanzu Kubernetes como usuario de vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  13. Compruebe el aprovisionamiento de clústeres mediante los siguientes comandos de kubectl.
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources
  14. Implemente un ejemplo de carga de trabajo y compruebe la creación de clústeres. Consulte Implementar cargas de trabajo en clústeres de Tanzu Kubernetes.
    Nota: Los clústeres de Tanzu Kubernetes tienen habilitada la directiva de seguridad de pods. Según la carga de trabajo y el usuario, es posible que deba crear un objeto RoleBinding adecuado o un objeto PodSecurityPolicy personalizado. Consulte Usar las directivas de seguridad de pods con clústeres de Tanzu Kubernetes.
  15. Implemente extensiones de TKG para hacer que el clúster se implemente de forma operativa. Consulte Implementar paquetes TKG en clústeres de Tanzu Kubernetes.