Clústeres de carga de trabajo

En este tema se describen los distintos tipos de clústeres de carga de trabajo creados por Tanzu Kubernetes Grid (TKG), y cómo se configuran y se crean.

Tipos de clústeres de carga de trabajo: Basado en clases, TKC y basado en planes

Tanzu Kubernetes Grid aloja tres tipos diferentes de clústeres de carga de trabajo:

  • Clústeres basados en clases
    • Son objetos de Kubernetes de tipo Cluster
    • ¿Es un nuevo tipo de clúster que se introdujo en vSphere with Tanzu 8 y TKG 2.x?
    • Tienen una topología básica definida en un bloque spec.topology
      • Por ejemplo, el número y el tipo de nodos de trabajo y plano de control
    • Heredar configuración del valor spec.topology.class
      • Hace referencia a un objeto ClusterClass
      • En supervisor, el class predeterminado es tanzukubernetescluster
      • En un clúster de administración independiente, el valor predeterminado class es tkg-INFRASTRUCTURE-default-VERSION, por ejemplo, tkg-vsphere-default-v1.0.0.
    • Se puede crear mediante supervisor en vSphere with Tanzu 8 o mediante un clúster de administración de TKG v2.x independiente en vSphere 6.7, 7 y 8 sin un supervisor, en AWS o en Azure
  • Clústeres basados en TKC (heredado)
    • Son objetos de Kubernetes de tipo TanzuKubernetesCluster
    • Puede crearse mediante un clúster supervisor en vSphere 7 o mediante un supervisor en vSphere 8 con fines heredados
  • Clústeres basados en planes (heredados)
    • Son objetos de Kubernetes de tipo Cluster
    • Se puede crear mediante un clúster de administración de TKG v2.x o v1.x independiente en vSphere 6.7, 7 y 8 sin un supervisor, en AWS o en Azure

Tenga en cuenta que los clústeres basados en clases con class: tanzukubernetescluster, en minúsculas, son diferentes de los clústeres basados en TKC, que tienen el tipo de objeto TanzuKubernetesCluster.

Los clústeres basados en clases están diseñados para reemplazar los otros dos tipos de clústeres, presentando la misma API a ambos tipos de clúster de administración: Supervisores y clústeres de administración independientes.

Importante

Tanzu Kubernetes Grid v2.4.x es la última versión de TKG que admite la creación de clústeres de carga de trabajo de TKG en AWS y Azure. La capacidad para crear clústeres de carga de trabajo de TKG en AWS y Azure se eliminará en la versión 2.5 de Tanzu Kubernetes Grid. Para obtener más información, consulte Desuso de la administración de TKG y los clústeres de cargas de trabajo en AWS y Azure en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.4.

Tipos de clúster y API del clúster

Para crear y administrar clústeres de carga de trabajo, los clústeres de administración ejecutan el software de API del clúster:

  • API del clúster: software de Kubernetes de código abierto para crear y administrar clústeres de Kubernetes.
  • Software proveedor de API del clúster que se ejecuta en infraestructuras físicas o de nube específicas como una interfaz para admitir la API del clúster.
    • La mayoría de los proyectos de software del proveedor de API del clúster son de código abierto, pero algunos son de propiedad exclusiva.

En la siguiente tabla, se asignan los tipos de clúster de carga de trabajo y administración a los proveedores de API del clúster que utilizan:

TKG con... utiliza el proveedor de API del clúster... en... para crear y administrar clústeres de carga de trabajo de tipo... en versiones del producto...
Supervisor CAPW (exclusivo) vSphere Objetos de Cluster basados en clases TKG 2.x y vSphere with Tanzu 8
Objetos TanzuKubernetesCluster vSphere with Tanzu 7 y 8
Clúster de administración independiente CAPA (OSS) AWS Objetos de Cluster basados en clases TKG v2.x
Objetos AWSCluster basados en planes TKG v2.x y v1.x
CAPZ (OSS) Azure Objetos de Cluster basados en clases TKG v2.x
Objetos AzureCluster basados en planes TKG v2.x y v1.x
CAPV (OSS) vSphere Objetos de Cluster basados en clases TKG v2.x
Objetos VSphereCluster basados en planes TKG v2.x y v1.x

Tipos de clústeres y compatibilidad de la CLI de Tanzu

Las diferentes versiones de la CLI de Tanzu que se incluyen en diferentes versiones de Tanzu Kubernetes Grid permiten crear diferentes tipos de clústeres en función de si utiliza Supervisor en vSphere 8, un clúster supervisor en vSphere 7 o un clúster de administración independiente en vSphere 6.7, 7 y 8 sin supervisor, en AWS, o en Azure.

Versión de CLI Versión de TKG Crear clústeres basados en clases con ... Crear clústeres basados en planes con ... Crear TanzuKubernetesClusters con...
Clúster de administración independiente Supervisor en vSphere 8 Clúster supervisor en vSphere 7 Clúster de administración independiente Supervisor en vSphere 8 Clúster supervisor en vSphere 7 Clúster de administración independiente Supervisor en vSphere 8 Clúster supervisor en vSphere 7
v0.90.1* 2.3.0 x x x x
v0.29.0 2.2.0 x x x x
v0.28.1 2.1.1 x x x x
v0.25.4 1.6.1 x x x x
v0.25.0 1.6.0 x x x x
v0.11.x 1.5.x x x x x x x x

* Para obtener una lista completa de las versiones de la CLI compatibles con Tanzu Kubernetes Grid v2.4, consulte la Matriz de interoperabilidad de productos.

Subcomponentes de objetos del clúster de carga de trabajo

Los clústeres basados en clases tienen la siguiente jerarquía de alto nivel de tipos de objetos. Los objetos subyacentes KubeAdmControlPlane y MachineDeployment tienen los mismos tipos, pero suelen ser objetos diferentes:

  • Cluster: número y tipo de nodos de trabajo y de plano de control establecidos por el bloque topology en la especificación
    • KubeAdmControlPlane: define los nodos del plano de control
      • Objeto de máquina específico de IaaS: por ejemplo, vSphereMachine, AWSMachine, DockerMachine
      • Machine: objeto genérico para la máquina virtual del nodo
      • KubeAdmConfig: configuración de Kubernetes, incluidos enlaces de versión de Kubernetes, repositorio de imágenes, enlaces previos y posteriores a la implementación, etc.
    • MachineDeployment: define los nodos de trabajo.
      • Objeto de máquina específico de IaaS
      • Machine
      • KubeAdmConfig

Para obtener más información, consulte las relaciones CustomResourceDefinitions en El libro de API del clúster.

Formas de crear clústeres de carga de trabajo

En función del entorno instalado, puede crear clústeres de carga de trabajo de Tanzu Kubernetes Grid de varias maneras: con CLI de Tanzu, Tanzu Mission Control y kubectl.

El siguiente gráfico describe cómo los usuarios pueden crear diferentes tipos de clústeres de carga de trabajo en diferentes infraestructuras:

Usar... para crear... toma los valores de configuración de... y plantillas de configuración de... Instrucciones
CLI de Tanzu:
tanzu cluster create
Clúster de carga de trabajo basado en clases (vSphere) Cluster y especificaciones de objetos subyacentes Usuario, por ejemplo, classycluster.yaml Crear un clúster basado en clases
Clúster de carga de trabajo TanzuKubernetesCluster (vSphere) Archivo de configuración del clúster, entorno
local,
superposiciones ytt (avanzado)
infrastructure-tkg-service-vsphere* (Heredado) Crear un clúster de TKC o basado en planes
Clúster de carga de trabajo basado en planes (vSphere, AWS, Azure) infrastructure-vsphere,
infrastructure-aws,
infrastructure-azure*
Tanzu Mission Control (TMC) TanzuKubernetesCluster o clúster de carga de trabajo basado en planes Interfaz de usuario de TMC Clúster de administración registrado Aprovisionar clústeres de carga de trabajo
kubectl apply Clústeres de carga de trabajo basados en clases o TanzuKubernetesCluster (vSphere) Cluster y especificaciones de objetos subyacentes Usuario (por ejemplo, classycluster.yaml, tkc.yaml Crear clústeres de carga de trabajo de forma declarativa

* Directorios locales en .config/tanzu/tkg/providers/

Acerca de la configuración de clústeres basados en planes y TKC heredados

Cuando la CLI de Tanzu crea un clúster de carga de trabajo basado en TKC, combina los valores de configuración de los siguientes elementos:

  • Entrada en vivo en la invocación
    • Entrada de la CLI
  • Variables del entorno
  • ~/.config/tanzu/tkg/cluster-config.yaml u otro archivo pasado a la opción --file de la CLI
  • Los archivos de configuración de YAML del plan de clúster en ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere, como se describe en Planificar archivos de configuración a continuación.
  • Otros archivos de configuración YAML no planificados en ~/.config/tanzu/tkg/providers

La entrada activa aplica los valores de configuración que son únicos para cada invocación, las variables de entorno las conservan durante una sesión de terminal y los archivos de configuración y las superposiciones los conservan de forma indefinida. Puede personalizar clústeres a través de cualquiera de estos orígenes, con recomendaciones y advertencias descritas a continuación.

Consulte Prioridad del valor de configuración para obtener información sobre cómo la CLI de tanzu deriva valores de configuración de clúster específicos de estos distintos orígenes en los que pueden entrar en conflicto.

Archivos de configuración del plan

El directorio ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere contiene archivos de configuración del plan de clúster de carga de trabajo de TKC denominados cluster-template-definition-PLAN.yaml. Los valores de configuración de cada plan provienen de estos archivos y de los archivos que enumeran en spec.paths:

  • Archivos de configuración que se incluyen en la CLI de tanzu
  • Archivos personalizados que los usuarios crean y agregan a la lista spec.paths
  • Superposiciones ytt que los usuarios crean o editan para sobrescribir valores en otros archivos de configuración

Archivos para editar, archivos para dejar solos

Para personalizar los planes de clúster a través de YAML, edite los archivos en ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere, pero debe evitar cambiar otros archivos.

Archivos para editar

Las rutas del archivo de configuración del plan de clúster de carga de trabajo siguen el formato ~/.config/tanzu/tkg/providers/infrastructure-infrastructure-tkg-service-vsphere/VERSION/cluster-template-definition-PLAN.yaml, donde:

  • VERSION es la versión del módulo del proveedor de API del clúster que utiliza la configuración.
  • PLAN es dev, prod o un plan personalizado.

Cada archivo de configuración del plan tiene una sección spec.paths que enumera los archivos de origen y los directorios ytt que configuran el plan del clúster. Por ejemplo:

apiVersion: providers.tanzu.vmware.com/v1alpha1
kind: TemplateDefinition
spec:
  paths:
    - path: providers/infrastructure-tkg-service-vsphere/v1.1.0/ytt
    - path: providers/ytt
    - path: bom
      filemark: text-plain
    - path: providers/config_default.yaml

Estos archivos se procesan en el orden indicado. Si el mismo campo de configuración se establece en varios archivos, la última opción procesada es la que utiliza la CLI de tanzu.

Para personalizar la configuración del clúster, puede:

  • Crear nuevos archivos de configuración y agregarlos a la lista spec.paths.
    • Este es el método más sencillo.
  • Modifique los archivos de superposición ytt existentes.
    • Este es el método más eficaz para las personas que se encuentran cómodas con ytt.

Archivos para dejarlos solos

VMware no recomienda cambiar los siguientes archivos en ~/.config/tanzu/tkg/providers, excepto según se indique:

  • Archivos base-template.yaml, en directorios ytt

    • Estos archivos de configuración utilizan valores de los repositorios del proveedor de API del clúster en los SIG Kubernetes y otros proyectos ascendentes de código abierto, y se mantienen intactos.
    • En su lugar, cree nuevos archivos de configuración o consulte Clústeres y planes de clúster en Configuración avanzada de TKC con ytt para establecer valores en el archivo overlay.yaml en el mismo directorio ytt.
  • ~/.config/tanzu/tkg/providers/config_default.yaml (solo anexar)

    • Este archivo contiene los valores predeterminados de todo el sistema para Tanzu Kubernetes Grid.
    • No modifique los valores existentes en este archivo, pero puede anexar una sección User Customizations al final.
    • En lugar de cambiar los valores de este archivo, personalice las configuraciones de clúster en archivos que se transfieren a la opción --file de tanzu cluster create.
  • ~/.config/tanzu/tkg/providers/config.yaml

    • La CLI de tanzu utiliza este archivo como referencia para todos los proveedores presentes en el directorio /providers y sus versiones predeterminadas.

Prioridad del valor de configuración

Cuando la CLI de Tanzu crea un clúster de carga de trabajo basado en TKC, combina los valores de configuración de varios orígenes. Si dichos orígenes entran en conflicto, se resuelven los conflictos en el siguiente orden de prioridad descendente:

Procesando capas, ordenadas por prioridad descendente Origen Ejemplos
1. Variables de configuración del clúster establecidas en el entorno local Se establece en shell. export WORKER_VM_CLASS=best-effort-large
2. Variables de configuración del clúster establecidas en la CLI de Tanzu, con tanzu config set env. Establecer en shell; se guardó en el archivo de configuración global de la CLI de Tanzu, ~/.config/tanzu/config.yaml. tanzu config set env.WORKER_VM_CLASS best-effort-large
3. Variables de configuración del clúster establecidas en el archivo de configuración del clúster Se establece en el archivo pasado a la opción --file de tanzu cluster create. La archivo de forma predeterminada es ~/.config/tanzu/tkg/cluster-config.yaml. WORKER_VM_CLASS: best-effort-large
4. Valores de configuración predeterminados de fábrica Se establece en providers/config_default.yaml, pero algunos campos aparecen sin valores predeterminados. No modifique este archivo. WORKER_VM_CLASS:
check-circle-line exclamation-circle-line close-line
Scroll to top icon