En este tema se explica cómo crear clústeres de carga de trabajo con la CLI de Tanzu.
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:
Clústeres basados en clases: Siga los pasos descritos en Crear un clúster basado en clases a continuación si va a implementar el clúster de carga de trabajo en:
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. Para obtener más información sobre los archivos de configuración del clúster y las especificaciones de objetos, consulte Archivos de configuración.
(Heredado) Clústeres de TKC y basados en planes: Siga los pasos descritos en (Heredado) Crear un clúster de TKC o basado en planes a continuación.
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.
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.
ImportanteVMware recomienda utilizar y conservar un archivo de configuración dedicado para cada clúster que implemente.
Busque el archivo de configuración que preparó como parte de Requisitos previos anteriormente.
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:
–file
de tanzu cluster create
, y el comando lo aplica automáticamente.–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
.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
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
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.
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
Examine o edite el archivo de especificación de objeto generado por tanzu cluster create
.
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.23.16---vmware.1-tkg.2
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
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
.
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.23.16---vmware.1-tkg.2
NotaAl 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 errorIt seems like you have done some customizations to the template overlays.
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.
El siguiente procedimiento explica cómo implementar un clúster de TKC o basado en planes desde un archivo de configuración:
AWSCluster
, AzureCluster
o VSphereCluster
en Kubernetes, según la plataforma de infraestructura a la que se dirige.TanzuKubernetesCluster
en Kubernetes.Para crear el clúster:
Establezca la función allow-legacy-cluster
en true
en la CLI de Tanzu:
tanzu config set features.cluster.allow-legacy-cluster true
Cree el clúster:
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
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.
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).
Después de conectar la CLI de Tanzu al supervisor, obtenga el espacio de nombres del vSphere de destino:
tanzu namespaces get
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 el resultado del comando, registre el valor deseado que aparece en NAME
, por ejemplo, v1.22.5---vmware.1-tkg.1
. El tkr
NAME
es el mismo que su VERSION
pero +
ha cambiado a ---
.
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.Una vez creado el clúster, ejecute tanzu cluster get
para ver el estado actual del clúster:
tanzu cluster get CLUSTER-NAME
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).
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:
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.
Si actualizó la configuración predeterminada de la función auto-apply-generated-clusterclass-based-configuration
, vuelva a configurarla en false
y, a continuación, 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 ejemplo de archivo de especificación de objeto, consulte Ejemplo de objeto Cluster
y sus objetos subordinados.
Cluster
, como se describe en
Configurar un clúster basado en clases implementado por supervisor.
Cluster
para trabajar, por ejemplo, Ejemplo 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.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
NotaAl 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 errorIt seems like you have done some customizations to the template overlays.
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:
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
.
(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
Cree el clúster de servicios compartidos como se describe en Crear un clúster desde un archivo de configuración anteriormente.
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.
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
.
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.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg
tkg-services default running 3/3 3/3 v1.25.7+vmware.1 tanzu-services prod v1.25.7---vmware.1-tkg
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---vmware.1-tkg
Obtenga las credenciales de admin
del clúster de servicios compartidos. Por ejemplo:
tanzu cluster kubeconfig get tkg-services --admin
Establezca el contexto de kubectl
en el clúster de servicios compartidos. Por ejemplo:
kubectl config use-context tkg-services-admin@tkg-services