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.
Tanzu Kubernetes Grid aloja tres tipos diferentes de clústeres de carga de trabajo:
Cluster
spec.topology
spec.topology.class
ClusterClass
class
predeterminado es tanzukubernetescluster
class
es tkg-INFRASTRUCTURE-default-VERSION
, por ejemplo, tkg-vsphere-default-v1.0.0
.TanzuKubernetesCluster
Cluster
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.
ImportanteTanzu 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.
Para crear y administrar clústeres de carga de trabajo, los clústeres de administración ejecutan el software de API del clúster:
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 |
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.
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
vSphereMachine
, AWSMachine
, DockerMachine
Machine
: objeto genérico para la máquina virtual del nodoKubeAdmConfig
: 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.
Machine
KubeAdmConfig
Para obtener más información, consulte las relaciones CustomResourceDefinitions en El libro de API del clúster.
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/
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:
~/.config/tanzu/tkg/cluster-config.yaml
u otro archivo pasado a la opción --file
de la CLI~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
, como se describe en Planificar archivos de configuración a continuación.~/.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.
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
:
tanzu
spec.paths
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:
spec.paths
.
ytt
existentes.
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
ytt
para establecer valores en el archivo overlay.yaml
en el mismo directorio ytt
.~/.config/tanzu/tkg/providers/config_default.yaml
(solo anexar)
User Customizations
al final.--file
de tanzu cluster create
.~/.config/tanzu/tkg/providers/config.yaml
tanzu
utiliza este archivo como referencia para todos los proveedores presentes en el directorio /providers
y sus versiones predeterminadas.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: |