En este tema se explica cómo crear clústeres de carga de trabajo basados en TKC y clase en Tanzu Kubernetes Grid 2.
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.
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
:
Obtenga el espacio de nombres vSphere de destino:
tanzu namespaces get
Cree o adapte una especificación de objeto Cluster
como se describe en Configurar un clúster de carga de trabajo basado en clases.
Cluster
, por ejemplo, Ejemplo de v1beta1: Clúster predeterminado.topology
bloque del archivo de especificaciones.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.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
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.
Para implementar un clúster de carga de trabajo basado en TKC:
Obtenga información sobre las clases de almacenamiento definidas en el clúster supervisor.
kubectl get storageclasses
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.
Determine la versión de Tanzu Kubernetes (TKr) para el clúster:
Obtenga la lista de TKr que están disponibles en el clúster supervisor.
tanzu kubernetes-release get
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 ---
.
Decida el plan del clúster: dev
, prod
o un plan personalizado.
~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
. Consulte Archivos de configuración del plan para obtener más información.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.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
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.
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.
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.
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:
Crear etiquetas en vCenter Server
k8s-region
y k8s-zone
.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 |
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 |
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
.
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.
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.
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.