Crear clústeres de carga de trabajo

En este tema se explica cómo crear clústeres de carga de trabajo con la CLI de Tanzu.

Requisitos previos

(Recomendado) Crear un clúster de desde un archivo de configuración

Los siguientes procedimientos explican cómo implementar un clúster de carga de trabajo desde un archivo de configuración del clúster. Desde un archivo de configuración del clúster, puede crear los siguientes tipos de clústeres:

Para obtener más información sobre estos tipos de clústeres, consulte Tipos de clústeres de carga de trabajo en Acerca de Tanzu Kubernetes Grid.

Crear un clúster basado en clases

El siguiente procedimiento explica cómo implementar un clúster de carga de trabajo basado en clases desde un archivo de configuración del clúster. El clúster resultante está representado por un objeto Cluster en Kubernetes.

Importante

VMware recomienda utilizar y conservar un archivo de configuración dedicado para cada clúster que implemente.

  1. Busque el archivo de configuración que preparó como parte de Requisitos previos anteriormente.

  2. Cree el clúster. Puede crear un clúster en uno o dos pasos en función de si desea examinar o editar su especificación de objeto antes de crear el objeto:

    • Recomendado Cuando crea un clúster en un solo paso, pasa el archivo de configuración del clúster a la opción –file de tanzu cluster create y el comando lo aplica automáticamente.
    • Cuando se crea un clúster en dos pasos, se pasa el archivo de configuración del clúster a la opción –file de tanzu cluster create y, a continuación, el comando convierte el archivo en una especificación del objeto Cluster y se cierra sin crear el clúster. Después de examinar o editar la especificación, cree el clúster volviendo a ejecutar tanzu cluster create.

    Nota

    En TKG v2.3.1 en AWS y Azure, para crear un clúster a partir de una especificación de objeto, debe utilizar el proceso de un solo paso u omitir explícitamente la validación de zona de disponibilidad, como se describe en En AWS y Azure, se produce un fallo en la creación de un clúster de carga de trabajo con especificación de objeto con un error en la zona/región en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.3.

    Proceso de un solo paso (recomendado)
    Para seguir el proceso de un solo paso:
    1. Establezca auto-apply-generated-clusterclass-based-configuration en true si aún no lo está. Esto configura la CLI de Tanzu para crear siempre clústeres basados en clases mediante el proceso de un solo paso. Para más información sobre auto-apply-generated-clusterclass-based-configuration, consulte Funciones en Arquitectura y configuración de la CLI de Tanzu.

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
      
    2. Ejecute tanzu cluster create, especificando la ruta al archivo de configuración del clúster en la opción --file. Por ejemplo, si guardó el archivo de configuración my-workload-cluster.yaml en la carpeta predeterminada clusterconfigs, ejecute el siguiente comando para crear un clúster con el nombre que especificó en el archivo de configuración:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      Si no especificó un nombre en el archivo de configuración de clúster o desea crear un clúster con un nombre diferente al que especificó, especifique el nombre del clúster en el comando tanzu cluster create. Por ejemplo, para crear un clúster denominado another-workload-cluster desde el archivo de configuración my-workload-cluster.yaml, ejecute el siguiente comando:

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    Proceso de dos pasos; siempre
    Para seguir el proceso de dos pasos para cada clúster que cree:
    1. Establezca la función auto-apply-generated-clusterclass-based-configuration en false si aún no lo está. Esto configura la CLI de Tanzu para crear siempre clústeres basados en clases mediante el proceso de dos pasos. false es la opción predeterminada. Si actualizó el ajuste predeterminado, para establecerla de nuevo en false, ejecute:

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
      

      Para más información sobre auto-apply-generated-clusterclass-based-configuration, consulte Funciones en Arquitectura y configuración de la CLI de Tanzu.

    2. Para generar la especificación del objeto, ejecute tanzu cluster create especificando la ruta de acceso al archivo de configuración del clúster en la opción --file. El comando guarda la especificación del objeto resultante en la carpeta ~/.config/tanzu/tkg/clusterconfigs, imprime su ubicación y luego sale.

      Por ejemplo, si guardó el archivo de configuración del clúster my-workload-cluster.yaml en la carpeta clusterconfigs predeterminada, ejecute el siguiente comando para generar la especificación del objeto:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      Si no especificó un nombre para el clúster en el archivo de configuración o desea crear un clúster con un nombre diferente al que especificó, especifique el nombre del clúster en el comando tanzu cluster create. Por ejemplo:

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    3. Examine o edite el archivo de especificación de objeto generado por tanzu cluster create.

    4. Vuelva a ejecutar tanzu cluster create, especificando la ruta a la especificación del objeto en la opción --file. Por ejemplo:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
      

      Incluya todas las mismas marcas que utilizó en el primer paso, incluida la marca --tkr si va a crear un clúster que ejecuta una versión de Kubernetes diferente del clúster de administración. Por ejemplo:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
      
    Proceso de dos pasos, una vez
    Para seguir el proceso de dos pasos para un solo clúster:
    1. Para generar la especificación del objeto, ejecute tanzu cluster create con la opción --dry-run. La opción --dry-run reemplaza la opción auto-apply-generated-clusterclass-based-configuration.

      tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
      

      Donde:

      • CLUSTER-NAME es el nombre del clúster. Puede omitir CLUSTER-NAME si lo especificó en el archivo de configuración del clúster.
      • PATH-TO-CLUSTER-CONFIG-FILE es la ruta de acceso al archivo de configuración del clúster que se encuentra en el paso 1.
      • PATH-TO-OBJECT-SPEC-FILE es la ubicación en la que desea guardar el archivo de especificación de objeto resultante.

      Por ejemplo, para guardar la especificación del objeto resultante en un archivo denominado my-workload-cluster-spec.yaml, ejecute:

      tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
      
    2. Examine o edite el archivo de especificación de objeto generado por la opción --dry-run en el paso anterior. En el ejemplo anterior, el nombre del archivo de especificación es my-workload-cluster-spec.yaml.

    3. Después de examinar o editar el archivo de especificación de objeto, vuelva a ejecutar tanzu cluster create sin la opción --dry-run. En la opción --file, especifique la ruta de acceso al archivo de especificación de objeto. Por ejemplo:

      tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
      

      Incluya todas las mismas marcas que utilizó en el primer paso, incluida la marca --tkr si va a crear un clúster que ejecuta una versión de Kubernetes diferente del clúster de administración. Por ejemplo:

      tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
      
    Nota

    Al crear clústeres basados en clases, la CLI de Tanzu no utiliza las personalizaciones ytt descritas en Configuración del clúster heredada con ytt. Si la CLI los detecta en su máquina, se produce un error It seems like you have done some customizations to the template overlays.

  3. Después de crear el clúster, ejecute el comando tanzu cluster get para ver información sobre el clúster:

    tanzu cluster get CLUSTER-NAME
    

    El resultado muestra información sobre el estado del plano de control y los nodos de trabajo, la versión de Kubernetes que ejecuta el clúster y los nombres de los nodos.

(Heredado) Crear un clúster de TKC o basado en planes

El siguiente procedimiento explica cómo implementar un clúster de TKC o basado en planes desde un archivo de configuración:

  • Clústeres basados en planes: El clúster resultante está representado por un objeto AWSCluster, AzureCluster o VSphereCluster en Kubernetes, según la plataforma de infraestructura a la que se dirige.
  • Clústeres de TKC: El clúster resultante está representado por un objeto TanzuKubernetesCluster en Kubernetes.

Para crear el clúster:

  1. Establezca la función allow-legacy-cluster en true en la CLI de Tanzu:

    tanzu config set features.cluster.allow-legacy-cluster true
    
  2. Cree el clúster:

    Clúster basado en planes
    Si va a crear un clúster basado en planes, siga los pasos que se indican a continuación:
    1. Busque el archivo de configuración que preparó como parte de Requisitos previos anteriormente.
    2. Ejecute el comando tanzu cluster create especificando la ruta de acceso al archivo de configuración en la opción --file. Por ejemplo, si guardó el archivo de configuración de carga de trabajo my-workload-cluster.yaml en la carpeta predeterminada clusterconfigs, ejecute el siguiente comando para crear un clúster con el nombre que especificó en el archivo de configuración:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      Si no especificó un nombre en el archivo de configuración o desea crear un clúster con un nombre diferente al que especificó, especifique el nombre del clúster en el comando tanzu cluster create. Por ejemplo, para crear un clúster denominado another-workload-cluster desde el archivo de configuración my-workload-cluster.yaml, ejecute el siguiente comando:

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    3. Después de crear el clúster, ejecute el comando tanzu cluster get para ver información sobre el clúster:

      tanzu cluster get CLUSTER-NAME
      

      El resultado muestra información sobre el estado del plano de control y los nodos de trabajo, la versión de Kubernetes que ejecuta el clúster y los nombres de los nodos.

    Clúster de TKC
    Si va a crear un clúster de TKC, siga los pasos que se indican a continuación:
    1. 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 implementado por supervisor (heredado).

    2. Después de conectar la CLI de Tanzu al supervisor, obtenga el espacio de nombres del vSphere de destino:

      tanzu namespaces get
      
    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 el resultado del comando, registre el valor deseado que aparece en NAME, por ejemplo, v1.26.8---vmware.2-tkg.1. El tkr NAME es el mismo que su VERSION pero + ha cambiado a ---.

    4. 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 CONFIGURATION-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.
      • CONFIGURATION-FILE es la ruta local al archivo de configuración del clúster, por ejemplo, ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml.
      • TKR-NAME es el nombre del TKr obtenido anteriormente.
    5. Una vez creado el clúster, ejecute tanzu cluster get para ver el estado actual del clúster:

      tanzu cluster get CLUSTER-NAME
      
    6. Configure las direcciones IP de sus nodos de plano de control y endpoint para que sean estáticas, como se describe en Configurar las reservas de DHCP del nodo y el registro de DNS de endpoint (solo vSphere).

Crear un clúster de a partir de una especificación de objeto

Los siguientes procedimientos explican cómo crear un clúster de carga de trabajo basado en clases mediante una especificación de objeto de estilo Kubernetes:

  1. Cree una especificación de objeto de clúster como se describe en Crear una especificación de objeto a continuación.
  2. Implemente el clúster desde la especificación de objeto como se describe en Crear un clúster basado en clases a partir de la especificación de objeto a continuación.
Nota

En TKG v2.3.1 en AWS y Azure, para crear un clúster a partir de una especificación de objeto, debe utilizar el proceso de un solo paso u omitir explícitamente la validación de zona de disponibilidad, como se describe en En AWS y Azure, se produce un fallo en la creación de un clúster de carga de trabajo con especificación de objeto con un error en la zona/región en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.3.

Crear una especificación de objeto

Para crear un archivo de especificación de objeto de estilo Kubernetes para un clúster de carga de trabajo basado en clases, siga los pasos que se indican a continuación.

Clúster de administración independiente
Si va a implementar el clúster de carga de trabajo en vSphere con un clúster de administración independiente, AWS o Azure, puede utilizar la CLI de Tanzu para convertir un archivo de configuración del clúster en un archivo de especificación de objeto de estilo Kubernetes para un clúster de carga de trabajo basado en clases sin implementar el clúster. A continuación, puede utilizar la especificación como ejemplo para crear sus propias especificaciones. Para crear el archivo de especificaciones, puede:
  • Si ha actualizado la configuración predeterminada de la función auto-apply-generated-clusterclass-based-configuration, vuelva a establecerla en false y luego ejecute tanzu cluster create con la marca --file. Para establecer auto-apply-generated-clusterclass-based-configuration en false:

    tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
    

    Cuando esta función se establece en false y se ejecuta tanzu cluster create con la marca --file, el comando convierte su archivo de configuración de clúster en un archivo de especificación de objeto y sale sin crear el clúster. Después de revisar la configuración, vuelva a ejecutar tanzu cluster create con el archivo de especificaciones de objetos generado por la CLI de Tanzu.

  • Para crear un archivo de especificaciones para un solo clúster, pase la opción --dry-run a tanzu cluster create y guarde los resultados 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-spec.yaml
    

    La opción --dry-run reemplaza la opción auto-apply-generated-clusterclass-based-configuration.

Para ver un archivo de especificaciones del objeto de ejemplo, consulte Objeto Cluster de ejemplo y sus objetos subordinados a continuación.

Supervisor
Si va a implementar el clúster de carga de trabajo en vSphere 8 con supervisor, cree o adapte una especificación de objeto Cluster, como se describe en Configurar un clúster basado en clases implementado por supervisor.
  • En la documentación de vSphere 8 se muestran ejemplos de especificación de objetos Cluster para trabajar, por ejemplo, Ejemplo 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.


Crear un clúster basado en clases a partir de la especificación de objeto

Para implementar un clúster de carga de trabajo basado en clases a partir de una especificación de objeto, pase la especificación de objeto a la opción --file de tanzu cluster create, por ejemplo:

tanzu cluster create my-cluster --file my-cluster-spec.yaml
Nota

Al crear clústeres basados en clases, la CLI de Tanzu no utiliza las personalizaciones ytt descritas en Configuración del clúster heredada con ytt. Si la CLI los detecta en su máquina, se produce un error It seems like you have done some customizations to the template overlays.

Crear un clúster de servicios compartidos

Para los clústeres de carga de trabajo administrados por un clúster de administración creado con tanzu management-cluster create o tanzu mc create, en lugar de un clúster supervisor de vSphere with Tanzu, la implementación de Harbor u otros servicios permite que todas las cargas de trabajo compartan una sola instancia de servicio.

Cada instancia de Tanzu Kubernetes Grid solo puede tener un clúster de servicios compartidos.

La implementación de Harbor en un clúster de servicios compartidos permite que todos los clústeres de carga de trabajo administrados por el mismo clúster de administración compartan una única instancia de Harbor. Para obtener instrucciones sobre cómo implementar Harbor, consulte Instalar Harbor para el registro de servicios.

Para crear un clúster de servicios compartidos:

  1. Cree un archivo YAML de configuración de clúster para el clúster. Se recomienda utilizar el plan de clúster prod en lugar del plan dev. Por ejemplo:

    INFRASTRUCTURE_PROVIDER: vsphere
    CLUSTER_NAME: YOUR-CLUSTER-NAME
    CLUSTER_PLAN: prod
    

    Donde YOUR-CLUSTER-NAME es el nombre que elige para el clúster. Por ejemplo, tkg-services.

  2. (Solo vSphere) Si está utilizando el equilibrador de carga Kube-Vip predeterminado para la API del plano de control del clúster, debe especificar su endpoint configurando VSPHERE_CONTROL_PLANE_ENDPOINT. Asegúrese de que esta dirección VIP no esté en el rango de DHCP, sino en la misma subred que el rango de DHCP. Si asignó un nombre de dominio completo (FQDN) a la dirección VIP, puede especificar el FQDN en lugar de la dirección VIP.
    Si utiliza NSX Advanced Load Balancer (ALB), no establezca VSPHERE_CONTROL_PLANE_ENDPOINT a menos que necesite que el endpoint del plano de control sea una dirección específica. Si es así, utilice una dirección estática dentro del rango de redes VIP del perfil de NSX ALB IPAM que agregó manualmente al grupo de direcciones IP estáticas o un FQDN asignado a la dirección estática.

    Por ejemplo:

    VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
    
  3. Cree el clúster de servicios compartidos como se describe en Crear un clúster desde un archivo de configuración anteriormente.

  4. Establezca el contexto de kubectl en el contexto de clúster de administración. Por ejemplo:

    kubectl config use-context mgmt-cluster-admin@mgmt-cluster
    

    En este ejemplo, mgmt-cluster es el nombre del clústeres de administración.

  5. Agregue la etiqueta tanzu-services al clúster de servicios compartidos como su función de clúster. Esta etiqueta identifica el clúster de servicios compartidos en el clúster de administración y los clústeres de carga de trabajo. Por ejemplo:

    kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
    

    En este ejemplo, tkg-services es el nombre del clúster de servicios compartidos. Debería ver la confirmación cluster.cluster.x-k8s.io/tkg-services labeled.

  6. Compruebe que la etiqueta se haya aplicado correctamente ejecutando el siguiente comando:

    tanzu cluster list --include-management-cluster
    

    Debería ver que el clúster de servicios compartidos tiene la función tanzu-services. Por ejemplo:

    NAME              NAMESPACE   STATUS   CONTROLPLANE  WORKERS  KUBERNETES        ROLES           PLAN   TKR
    another-cluster   default     running  1/1           1/1      v1.26.8+vmware.1  <none>          dev    v1.26.8---vmware.2-tkg
    tkg-services      default     running  3/3           3/3      v1.26.8+vmware.1  tanzu-services  prod   v1.26.8---vmware.2-tkg
    mgmt-cluster      tkg-system  running  1/1           1/1      v1.26.8+vmware.1  management      dev    v1.26.8---vmware.2-tkg
    
  7. Obtenga las credenciales de admin del clúster de servicios compartidos. Por ejemplo:

    tanzu cluster kubeconfig get tkg-services --admin
    
  8. Establezca el contexto de kubectl en el clúster de servicios compartidos. Por ejemplo:

    kubectl config use-context tkg-services-admin@tkg-services
    

Qué hacer a continuación

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