Crear clústeres de carga de trabajo

En este tema se explica cómo crear clústeres de carga de trabajo basados en TKC y clase en Tanzu Kubernetes Grid 2.

Requisitos previos para la implementación del clúster

  • Ha seguido los procedimientos descritos en Instalar CLI de Tanzu y Otras herramientas.
  • Tiene una cuenta de vSphere en la que se ejecuta un clúster supervisor de vSphere with Tanzu y conectó la CLI de Tanzu al clúster supervisor de vSphere with Tanzu.
  • Ha configurado un clúster de carga de trabajo como se describe en Configurar clústeres de carga de trabajo.
  • Cada clúster requiere una dirección IP virtual estática para proporcionar un endpoint estable para Kubernetes. Asegúrese de que esta dirección IP no esté en el rango de DHCP, sino que esté en la misma subred que el rango de DHCP.

Clústeres basados en clases

En los siguientes procedimientos se describe cómo implementar y administrar clústeres de carga de trabajo creados como objetos Cluster en Kubernetes basados en un ClusterClass, como se describe en Tipos de clústeres de carga de trabajo.

Crear un clúster basado en clases

Para utilizar el supervisor en vSphere 8 para crear un clúster de carga de trabajo como un objeto Cluster basado en clases, en función del ClusterClass predeterminado, tanzukubernetescluster:

  1. Obtenga el espacio de nombres vSphere de destino:

    tanzu namespaces get
    
  2. Cree o adapte una especificación de objeto Cluster como se describe en Configurar un clúster de carga de trabajo basado en clases.

    • En la documentación de vSphere 8 se muestran ejemplos de especificaciones de objetos Cluster, por ejemplo, Ejemplo de v1beta1: Clúster predeterminado.
    • Establezca los tipos de máquina virtual, la escala y otras configuraciones básicas de clúster en la topology bloque del archivo de especificaciones.
    • Para personalizar los atributos que no se pueden establecer en el objeto Cluster, por ejemplo, la configuración de la interfaz de contenedor de un solo uso en la infraestructura del clúster, consulte Configurar los ajustes de infraestructura de un solo uso.
  3. Pase la especificación del objeto a la opción -f de tanzu cluster create, por ejemplo:

    tanzu cluster create my-cluster -f my-cluster-manifest.yaml
    

Clústeres basados en TKC

En los siguientes procedimientos se describe cómo implementar y administrar clústeres de carga de trabajo creados como objetos TanzuKubernetesCluster en Kubernetes, como se describe en Tipos de clústeres de carga de trabajo.

Crear un clúster de TKC a partir de un archivo de configuración

Para implementar un clúster de carga de trabajo basado en TKC:

  1. Obtenga información sobre las clases de almacenamiento definidas en el clúster supervisor.

    kubectl get storageclasses
    
  2. Cree o copie un archivo de configuración para el clúster de carga de trabajo como se describe en Configurar un clúster de TKC con un archivo de configuración, para establecer las clases de almacenamiento, las clases de máquinas virtuales, el dominio de servicio, el espacio de nombres y otros valores necesarios con los que crear el clúster. Para ver una lista de los espacios de nombres vSphere a los que tiene acceso, ejecute tanzu namespaces get.

    Importante: VMware recomienda usar un archivo de configuración dedicado para cada clúster que implemente.

  3. Determine la versión de Tanzu Kubernetes (TKr) para el clúster:

    1. Obtenga la lista de TKr que están disponibles en el clúster supervisor.

      tanzu kubernetes-release get
      
    2. En la salida del comando, registre el valor deseado que aparece en NAME (por ejemplo, v1.22.5---vmware.1-tkg.1.a87f261. El tkr NAME es el mismo que su VERSION pero + ha cambiado a ---.

  4. Decida el plan del clúster: dev, prod o un plan personalizado.

    • Puede personalizar o crear planes de clúster con archivos en el directorio ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere. Consulte Archivos de configuración del plan para obtener más información.
  5. Implemente el clúster ejecutando tanzu cluster create con el valor TKR-NAME y el nombre del archivo de configuración:

    tanzu cluster create CLUSTER-NAME --file CONFIG-FILE --tkr=TKR-NAME
    

    Donde:

    • CLUSTER-NAME es cualquier nombre que proporcione para el clúster. Este valor de la línea de comandos reemplaza cualquier ajuste de CLUSTER_NAME del archivo de configuración.
    • CONFIG-FILE es la ruta local al archivo de configuración del clúster (por ejemplo, .config/tanzu/tkg/clusterconfigs/my-vsphere-tkc.yaml.
    • TKR-NAME es el nombre del TKr obtenido anteriormente.
  6. Para ver el estado actual del clúster, ejecute tanzu cluster get especificando el nombre del clúster. Por ejemplo:

    tanzu cluster get my-vsphere-tkc
    
  7. Después de implementar el clúster, configure las direcciones IP de sus nodos de plano de control y endpoint para que sean estáticas, como se describe en Configurar reservas de DHCP para el plano de control.

Generar una especificación de objeto de clúster de TKC desde un archivo de configuración

Puede utilizar la CLI de Tanzu para convertir un archivo de configuración de TKC en un archivo de especificación de objeto (manifiesto) para un clúster de carga de trabajo basado en TKC sin implementar el clúster.

Para crear el archivo, pase la opción --dry-run a tanzu cluster create y guarde la salida en un archivo.

Utilice las mismas opciones y la misma configuración --file que usaría si estuviera creando el clúster, por ejemplo:

tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-manifest.yaml

Puede utilizar esta especificación de objeto para implementar un clúster como se describe en Implementar un clúster de TKC desde una especificación de objeto, a continuación.

Implementar un clúster de TKC desde una especificación de objeto

Para implementar un clúster de carga de trabajo basado en TKC desde una especificación de objeto, por ejemplo, generado a partir de un archivo de configuración como se describe en Generar una especificación de objeto de clúster de TKC desde un archivo de configuración, realice una de las siguientes acciones:

  • Pase la especificación del objeto a la opción -f de tanzu cluster create, por ejemplo:

    tanzu cluster create my-cluster -f my-cluster-manifest.yaml
    
  • Pase la especificación del objeto a la opción -f de kubectl apply, por ejemplo:

    kubectl config use-context SUPERVISOR-IP
    
    kubectl apply -f my-cluster-manifest.yaml
    

    Donde SUPERVISOR-IP es el contexto del supervisor, consulte Obtener y utilizar el contexto de supervisor en Servicios y cargas de trabajo de vSphere with Tanzu.

Crear un clúster de TKC con etiquetas de región y zona para CSI

Puede especificar una región y una zona para el clúster de carga de trabajo, a fin de integrarla con las etiquetas de zona y región configuradas para vSphere CSI (Cloud Storage Interface). Para los clústeres que abarcan varias zonas, esto permite que los nodos de trabajo encuentren y utilicen almacenamiento compartido, incluso si se ejecutan en zonas que no tienen pods de almacenamiento, por ejemplo, en una red de acceso de radio de telecomunicaciones (RAN).

Para implementar un clúster de carga de trabajo con etiquetas de zona y región que habiliten el almacenamiento compartido con vSphere CSI:

  1. Crear etiquetas en vCenter Server

    1. Cree categorías de etiquetas en vCenter Server siguiendo Crear y editar una categoría de etiqueta. Por ejemplo, k8s-region y k8s-zone.
    2. Siga Crear y editar una etiqueta de vSphere para crear etiquetas dentro de las categorías de región y zona en el centro de datos, como se muestra en esta tabla:

      Categoría Etiquetas
      k8s-zone zone-a
      zone-b
      zone-c
      k8s-region region-1

  2. Cree las etiquetas correspondientes a los clústeres en el centro de datos siguiendo Asignar o quitar una etiqueta de vSphere como se indica en la tabla.

    Objetos vSphere Etiquetas
    datacenter region-1
    cluster1 zone-a
    cluster2 zone-b
    cluster3 zone-c
  3. Para habilitar zonas y regiones personalizadas para un vSphere controlador CSI del clúster de carga de trabajo, establezca las variables VSPHERE_REGION y VSPHERE_ZONE en el archivo de configuración del clúster en las etiquetas anteriores. Por ejemplo:

    VSPHERE_REGION: region-1
    VSPHERE_ZONE: zone-a
    

    Cuando la CLI de tanzu crea un clúster de carga de trabajo con estas variables establecidas, etiqueta cada nodo del clúster con las claves de topología failure-domain.beta.kubernetes.io/zone y failure-domain.beta.kubernetes.io/region.

  4. Ejecute tanzu cluster create para crear el clúster de carga de trabajo, como se describe en Crear un clúster de TKC a partir de un archivo de configuración.

  5. Después de crear el clúster y con el contexto kubectl establecido en el clúster, puede comprobar las etiquetas de región y zona mediante una de las siguientes acciones:

    • Ejecute kubectl get nodes -L failure-domain.beta.kubernetes.io/zone -L failure-domain.beta.kubernetes.io/region y confirme que el resultado enumera los nodos del clúster.

    • Ejecute kubectl get csinodes -o jsonpath='{range .items\[\*\]}{.metadata.name} {.spec}{"\\n"}{end}' y confirme que la región y la zona estén habilitadas en vsphere-csi.

Para obtener más información sobre cómo configurar vSphere CSI, consulte Controlador vSphere csi: Implementación con topología.

Clústeres de carga de trabajo, kubectl y kubeconfig

Tanzu Kubernetes Grid no establece automáticamente el contexto kubectl en un clúster de carga de trabajo cuando se crea. Debe establecer manualmente el contexto kubectl en un clúster de carga de trabajo mediante el comando kubectl config use-context.

De forma predeterminada, a menos que especifique la opción KUBECONFIG para guardar el kubeconfig de un clúster en un archivo específico, todos los clústeres de carga de trabajo que implemente se agregarán a un archivo .kube/config compartido. Si elimina el archivo .kube/config compartido y sigue teniendo el archivo .kube-tkg/config para el clúster de administración, puede recuperar el .kube/config de los clústeres de carga de trabajo con el comando tanzu cluster kubeconfig get <my-cluster>.

No cambie el contexto ni edite los archivos .kube-tkg/config o .kube/config mientras se ejecutan las operaciones de Tanzu Kubernetes Grid.

Qué hacer a continuación

check-circle-line exclamation-circle-line close-line
Scroll to top icon