En este tema se explica cómo configurar clústeres de carga de trabajo de Tanzu Kubernetes Grid (TKG) mediante un archivo de configuración plano o una especificación de objeto de estilo Kubernetes. Para obtener instrucciones específicas de IaaS, consulte:
La forma de configurar un clúster de carga de trabajo depende del tipo de clúster, como se describe en las secciones siguientes.
(Tipo predeterminado) Los clústeres basados en clases utilizan una especificación de objeto de estilo Kubernetes para el objeto Cluster
. Para crear un clúster basado en clases, puede pasar esta especificación de objeto o un archivo de configuración del clúster con una estructura plana que establezca variables de guion bajo en mayúscula, como CLUSTER_NAME
a tanzu cluster create
.
ClusterBootstrap
y los objetos a los que hace referencia.(Tipos heredados) Los clústeres basados en planes y TKC utilizan un archivo de configuración del clúster con una estructura plana que establezca variables de guion bajo en mayúscula como CLUSTER_NAME
. Para crear un clúster heredado, debe pasar este archivo de configuración a tanzu cluster create
.
ytt
, consulte Instalar Carvel Tools.Para obtener más información sobre los tipos de clústeres anteriores y los proveedores de API del clúster que utilizan, consulte:
kubectl
.Para obtener información sobre el archivo de configuración que se debe elegir para el clúster de carga de trabajo, consulte la siguiente tabla.
Puede utilizar un … con la CLI de Tanzu | para crear y administrar clústeres de carga de trabajo de tipo… | en infraestructura… |
---|---|---|
Archivo de configuración del clúster plano |
|
|
Especificación de objeto de estilo Kubernetes | Clústeres basados en clases | vSphere 8 con Supervisor; vSphere 7 y 8 con un clúster de administración independiente; AWS; y Azure |
Puede utilizar un archivo de configuración del clúster para configurar los siguientes tipos de clústeres:
Clústeres basados en clases: Esto incluye implementaciones para:
Si desea implementar una carga de trabajo basada en clases en vSphere 8 con supervisor, debe implementarla desde una especificación a partir de una especificación de objeto, como se describe en Configurar un clúster basado en clases implementado por supervisor (solo vSphere 8) .
(Heredado) Clústeres de TKC y basados en planes: Esto incluye implementaciones para:
Antes de implementar un clúster de carga de trabajo en vSphere, AWS o Azure, cree un archivo de configuración para el clúster. Al pasar este archivo a la opción --file
de tanzu cluster create
, la CLI de Tanzu utiliza la información de configuración definida en el archivo para conectarse a la plataforma de destino y crear los recursos que utilizará el clúster.
Para crear un archivo de configuración del clúster, puede copiar un archivo de configuración existente de una implementación anterior y actualizarlo. Si lo prefiere, puede crear un archivo desde cero mediante una plantilla:
Para establecer la información de configuración pertinente para su infraestructura, consulte:
Para obtener la lista completa de opciones que puede especificar en el archivo de configuración del clúster, consulte Referencia de variables del archivo de configuración.
Cuando se implementa un clúster de carga de trabajo, la mayor parte de la configuración del clúster es la misma que la configuración del clúster de administración independiente que se utiliza para implementarlo. Por este motivo, la forma más sencilla de crear un archivo de configuración para un clúster de carga de trabajo es comenzar con una copia del archivo de configuración del clúster de administración independiente.
Busque el archivo de configuración YAML para el clúster de administración:
--file
cuando ejecutó tanzu mc create --ui
, el archivo de configuración se guarda en ~/.config/tanzu/tkg/clusterconfigs/
. El archivo tiene un nombre generado de forma aleatoria, por ejemplo, bm8xk9bv1v.yaml
.--file
, la configuración del clúster de administración se tomará del archivo que especificó.--file
o de la ubicación predeterminada, ~/.config/tanzu/tkg/cluster-config.yaml
.Realice una copia del archivo de configuración del clúster de administración y guárdelo con un nombre nuevo. Por ejemplo, guarde el archivo como my-aws-cluster.yaml
, my-azure-cluster.yaml
o my-vsphere-cluster.yaml
.
Actualice la configuración en el archivo de configuración del clúster. Si desea configurar un clúster de carga de trabajo para que utilice un sistema operativo distinto del predeterminado Ubuntu 20.04, debe establecer los valores OS_NAME
y OS_VERSION
. La interfaz del instalador no incluye los valores del sistema operativo de la máquina virtual del nodo en los archivos de configuración del clúster de administración que guarda en ~/.config/tanzu/tkg/clusterconfigs
.
Guarde el archivo.
Si desea preparar un archivo de configuración del clúster para un clúster de TKC en el vSphere 8 con supervisor, consulte Configurar un clúster de TKC implementado por supervisor (heredado).
Puede utilizar un archivo de especificación de objeto de estilo Kubernetes para implementar un clúster de carga de trabajo basado en clases en:
Un archivo de especificación de objeto sirve para el mismo propósito que un archivo de configuración del clúster. Cuando se pasa una especificación de objeto a la opción --file
de tanzu cluster create
, la CLI de Tanzu crea el clúster con la información de configuración definida en la especificación del objeto.
Al igual que con otros objetos de Kubernetes, puede configurar un clúster de carga de trabajo basado en clases mediante la creación y la edición de especificación de objetos. Para los objetos de clúster, estos son:
Cluster
: Configura la mayoría de las opciones de clúster, como la topología de clúster. Puede cambiar y volver a aplicar esta especificación de objeto para cambiar la configuración de un clúster en ejecución.ClusterBootstrap
: Configura opciones no predeterminadas que solo se aplican cuando se crea el clúster por primera vez, como la interfaz de red de contenedor (Container Network Interface, CNI) y la interfaz de almacenamiento de contenedores (Container Storage Interface, CSI), y que no se pueden volver a configurar en un clúster en ejecución. Para obtener más información, consulte Configurar los ajustes de infraestructura de un solo uso.Para crear su primer archivo de especificación de objeto:
Si va a implementar un clúster de carga de trabajo basado en clases en vSphere sin Supervisor, 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 sin implementar el clúster:
(Configuración global) Utilice la función auto-apply-generated-clusterclass-based-configuration
de la CLI de Tanzu. Esta función está establecida en false
de forma predeterminada. Cuandoauto-apply-generated-clusterclass-based-configuration
se establece enfalse
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 especificación de objeto generado por la CLI de Tanzu, como se describe en Crear un clúster basado en clases a partir de la especificación de objeto. Si actualizó la configuración predeterminada, para establecerla de nuevo en false
, ejecute:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(Clúster único) Pase la opción --dry-run
a tanzu cluster create
y guarde el resultado 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
Puede utilizar esta especificación de objeto para implementar un clúster como se describe en Crear un clúster basado en clases a partir de una especificación de objeto.
Si va a implementar un clúster de carga de trabajo basado en clases 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 (solo vSphere 8). 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.
Puede configurar la mayoría de los ajustes de clúster comunes en la especificación de objeto Cluster
, pero algunos componentes del clúster provienen de la versión de Tanzu Kubernetes (TKr) en la que se basan los nodos del clúster. Por ejemplo, TKr especifica las versiones de CNI, CSI y Pinniped que utiliza un clúster.
Estas opciones de nivel de infraestructura que el objeto ClusterBootstrap
aplica en el momento de la creación del clúster y que no se pueden cambiar en un clúster en ejecución. El procedimiento general para configurar estas opciones antes de crear un clúster es el siguiente:
Cree especificaciones de objeto para el objeto ClusterBootstrap
y los objetos personalizados a los que hace referencia (por ejemplo, un objeto CalicoConfig
).
Cree una especificación de objeto para el propio objeto Cluster
.
En el metadata
para todas las especificaciones de objetos, incluya el nombre y el espacio de nombres del clúster que está creando, por ejemplo:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
La personalización puede requerir metadatos adicionales, como anotaciones.
Concatene todas las especificaciones de objetos, incluida la definición Cluster
, en un único archivo. Separe las especificaciones con líneas compuestas por tres guiones (---
).
Pase la especificación del objeto a la opción --file
de kubectl apply
, por ejemplo:
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
Método alternativo: Como alternativa a los dos últimos pasos, puede ejecutar kubectl apply -f
en todas las especificaciones de objetos, excepto en el objeto Cluster
y, a continuación, ejecutar tanzu cluster create --file
con la especificación del objeto Cluster
.
Para obtener un ejemplo específico de este procedimiento, consulte Crear un clúster con una CNI no predeterminada, que establece la CNI de un clúster en Calico.
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 CLUSTER-NAME
.
No cambie el contexto ni edite los archivos .kube-tkg/config
o .kube/config
mientras se ejecutan las operaciones de Tanzu Kubernetes Grid.
Continúe con el tema de configuración del clúster para su infraestructura: