Especificaciones de objetos y archivos de configuración

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:

Tipos de clústeres

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.

    • Las personalizaciones más avanzadas también pueden requerir una especificación para 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.

    • Las personalizaciones más avanzadas pueden requerir superposiciones ytt para personalizar los clústeres de carga de trabajo o los planes de clústeres.

Para obtener más información sobre los tipos de clústeres anteriores y los proveedores de API del clúster que utilizan, consulte:

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.

Archivos de configuración

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
  • Clústeres basados en clases
  • Clústeres basados en planes
  • Clústeres de TKC
  • Clústeres basados en clases en vSphere 6.7, 7 y 8 con un clúster de administración independiente; AWS; y Azure
  • Clústeres basados en planes en vSphere 6.7, 7 y 8 con un clúster de administración independiente; AWS; y Azure
  • Clústeres de TKC en vSphere 8 con supervisor
Especificación de objeto de estilo Kubernetes Clústeres basados en clases vSphere 8 con Supervisor; vSphere 6.7, 7 y 8 con un clúster de administración independiente; AWS; y Azure

Configuración de un clúster de carga de trabajo con un archivo de configuración del clúster

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:

    • vSphere 6.7, 7 y 8 con un clúster de administración independiente
    • AWS
    • Azure

    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:

    • Para clústeres basados en planes: vSphere 6.7, 7 y 8 con un clúster de administración independiente, AWS y Azure
    • Para clústeres de TKC: vSphere 8 con supervisor

Acerca del archivo de configuración del clúster

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:

Crear el primer archivo de configuración del clúster

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.

  1. Busque el archivo de configuración YAML para el clúster de administración:

    • Si implementó el clúster de administración desde la interfaz del instalador y no especificó la opció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.
    • Si implementó el clúster de administración desde la interfaz del instalador y especificó la opción --file, la configuración del clúster de administración se tomará del archivo que especificó.
    • Si implementó el clúster de administración desde la CLI de Tanzu sin usar la interfaz del instalador, la configuración del clúster de administración se toma de un archivo que especificó en la opción --file o de la ubicación predeterminada, ~/.config/tanzu/tkg/cluster-config.yaml.
  2. 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.

  3. 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.

  4. 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).

Configurar un clúster de carga de trabajo con una especificación de objeto

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:

  • vSphere 6.7, 7 y 8 sin supervisor
  • vSphere 8 con supervisor
  • AWS
  • Azure

Acerca del archivo de especificación de objeto

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.

Crear el primer archivo de especificación de 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:

  • Objeto del 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.
  • (Opcional; vSphere with Tanzu) Objeto 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.

Configurar los ajustes de infraestructura de un solo uso (vSphere with Tanzu)

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:

  1. Cree especificaciones de objeto para el objeto ClusterBootstrap y los objetos personalizados a los que hace referencia (por ejemplo, un objeto CalicoConfig).

  2. Cree una especificación de objeto para el propio objeto Cluster.

  3. 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.

  4. 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 (---).

  5. 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.

Clústeres de carga de trabajo, 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.

Qué hacer a continuación

Continúe con el tema de configuración del clúster para su infraestructura:

check-circle-line exclamation-circle-line close-line
Scroll to top icon