Archivos de configuración de vSphere con clúster supervisor

En este tema se explica cómo utilizar un archivo de configuración plano o una especificación de objeto de estilo Kubernetes para configurar un clúster de carga de trabajo de Tanzu Kubernetes Grid (TKG) antes de implementarlo en vSphere 8 con Tanzu. Para configurar un clúster de carga de trabajo para la implementación en vSphere con un clúster de administración independiente, consulte Archivos de configuración de vSphere con clúster de administración independiente.

Para obtener información general sobre cómo configurar clústeres de carga de trabajo mediante archivos de configuración y especificaciones de objetos, consulte Especificaciones de objetos y archivos de configuración.

Para utilizar las funciones de clúster de carga de trabajo específicas de vSphere que requieren alguna configuración fuera del archivo de configuración o las especificaciones de objetos del clúster, consulte Clústeres en vSphere.

Descripción general

Para configurar un clúster de carga de trabajo antes de implementarlo en vSphere with Tanzu, cree un archivo de especificación de objeto de estilo Kubernetes si va a configurar un clúster basado en clases o un archivo de configuración del clúster si va a configurar un clúster de TKC. Al pasar cualquiera de estos archivos a la opción -f de tanzu cluster create, la CLI de Tanzu utiliza la información de configuración definida en el archivo para conectarse a la cuenta de vSphere y crear los recursos que utilizará el clúster.

Para configurar:

Para obtener información sobre los tipos de clúster anteriores, consulte Tipos de clústeres de carga de trabajo.

Configurar un clúster basado en clases implementado por supervisor

Para configurar un clúster de carga de trabajo para la implementación en vSphere 8 with Tanzu:

  1. Cree o adapte una especificación de objeto Cluster. En la documentación de vSphere 8 se muestran ejemplos de especificación de objetos Cluster para trabajar:

    Establezca los tipos de máquina virtual, la escala y otras configuraciones básicas de clúster en la topology bloque del archivo de especificaciones. Para obtener información sobre el bloque topology, consulte Objeto de clúster basado en clases y estructura de topología y Variables de topología de ClusterClass a continuación.

  2. (Opcional) Para personalizar los atributos que no se pueden establecer en el objeto 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.

Objeto de clúster basado en clases y estructura de topología

La configuración de nivel superior configurable en un objeto Cluster con tipo tanzukubernetescluster se realiza de la siguiente manera. Consulte variables de topología de ClusterClass para ver las variables que puede configurar:

spec:
  clusterNetwork
    apiServerPort
    services
      cidrBlocks
    pods
      cidrBlocks
    serviceDomain
  controlPlaneEndpoint
    host
    port
  topology
    class
    version
    rolloutAfter
    controlPlane
      metadata
      replicas
      nodeDrainTimeout
      nodeDeletionTimeout
      machineHealthCheck
        maxUnhealthy
        nodeStartupTimeout
        unhealthyConditions
    workers
      machineDeployments
        metadata
        - class
        name
        failureDomain
        replicas
        nodeDrainTimeout
        nodeDeletionTimeout
        machineHealthCheck
          maxUnhealthy
          nodeStartupTimeout
          unhealthyConditions
        variables
          name
          value
  variables
    name
    value

Estos campos se establecen en la especificación de tipo de objeto Cluster: cluster_types.go.

  • Campos opcionales: Para cada campo, la configuración de json: indica si el campo es opcional. Los campos opcionales tienen la configuración omitempty.
  • Las estructuras anidadas por referencia en la especificación de tipo se aplican en el YAML de la especificación de objeto. Por ejemplo, la estructura Topology contiene *Workers en la especificación de tipo, por lo que workers se encuentra en topology en la especificación de objeto.

Las opciones - class y variables se definen en la clase de clúster del objeto Cluster, que se establece como el valor spec.topology.class del clúster. Por ejemplo, en vSphere with Tanzu, esto es un objeto ClusterClass denominado tanzukubernetescluster, que es diferente de un objeto TanzuKubernetesCluster, como se explica en Tipos de clústeres de carga de trabajo.

variables configurables incluyen vmClass, storageClass, proxy, nodeLabels, extensionCert y muchas otras, como se enumeran en Variables de topología de ClusterClass a continuación. Estas variables configuran e invalidan la configuración en los objetos subyacentes al objeto de clúster, como los objetos KubeAdmConfig y Machine.

Variables de topología ClusterClass

La clase de clúster tanzukubernetescluster, la ClusterClass predeterminada para TKG en vSphere con clústeres de carga de trabajo de Tanzu, admite las siguientes variables establecidas en topology.variables y topology.workers.machineDeployments.variables. La configuración de variables específica de las implementaciones de máquinas, como los grupos de nodos, anula la configuración global.

Estas variables configuran e invalidan la configuración en los objetos subyacentes al objeto de clúster, como las opciones vmClass, storageClass y proxy establecidas en los objetos KubeAdmConfig y Machine. Esto permite a los usuarios configurar un clúster por completo dentro de la especificación de objeto Cluster sin tener que editar las especificaciones de objetos de nivel inferior:

  • clusterEncryptionConfigYaml
  • controlPlaneVolumes
  • defaultRegistrySecret
  • defaultStorageClass
  • extensionCert
  • nodePoolLabels
  • nodePoolTaints
  • nodePoolVolumes
  • ntp
  • proxy
  • storageClass
  • storageClasses
  • TKR_DATA
  • trust
  • user
  • vmClass

Los siguientes temas de la documentación de vSphere 8 describen la reconfiguración de un clúster en ejecución cambiando sus opciones storageClass y vmClass:

Configurar un clúster de TKC implementado por supervisor (heredado)

Para crear un archivo de configuración del clúster para un clúster de carga de trabajo TKC (heredado) en vSphere 8, puede copiar un archivo de configuración existente de una implementación anterior en vSphere with Tanzu y actualizarlo. Si lo prefiere, puede crear un archivo desde cero mediante una plantilla vacía.

Para configurar un clúster de carga de trabajo implementado por el supervisor de vSphere with Tanzu, establezca variables para definir las clases de almacenamiento, las clases de máquina virtual, el dominio de servicio, el espacio de nombres y otros valores necesarios con los que crear su clúster. En la siguiente tabla se enumeran las variables que puede incluir en el archivo de configuración de un clúster basado en TKC. Como alternativa, puede establecerlas como variables de entorno locales.

Variables requeridas
Variable Ejemplo o tipo de valor Descripción
INFRASTRUCTURE_PROVIDER tkg-service-vsphere Siempre tkg-service-vsphere para los objetos TanzuKubernetesCluster en vSphere with Tanzu.
CLUSTER_PLAN dev, prod o un plan personalizado Establece los recuentos de nodos.
CLUSTER_CIDR Rango de CIDR El rango de CIDR que se utilizará para los pods. El rango recomendado es 100.96.0.0/11. Cambie este valor solo si el rango recomendado no está disponible.
SERVICE_CIDR El rango de CIDR que se utilizará para los servicios de Kubernetes. El rango recomendado es 100.64.0.0/13. Cambie este valor solo si el rango recomendado no está disponible.
SERVICE_DOMAIN Dominio Por ejemplo, my.example.com o cluster.local si no hay DNS. Si va a asignar FQDN con los nodos, se requiere la búsqueda de DNS.
CONTROL_PLANE_VM_CLASS Una clase de máquina virtual estándar para vSphere with Tanzu, por ejemplo, guaranteed-large.
Consulte Usar clases de máquinas virtuales con clústeres de TKG en supervisor en la documentación de vSphere with Tanzu.
Clase de máquina virtual para nodos de plano de control
WORKER_VM_CLASS Clase de máquina virtual para nodos de trabajador
Variables opcionales
Variable Ejemplo o tipo de valor Descripción
CLUSTER_NAME Cadena Anulado por el argumento CLUSTER-NAME pasado a tanzu cluster create.
Este nombre debe cumplir con los requisitos del nombre de host de DNS tal como se describe en RFC 952 y debe modificarse en RFC 1123 y debe tener un máximo de 42 caracteres. Note: Debe proporcionar un nombre único para todos los clústeres de carga de trabajo en todos los espacios de nombres. Si especifica un nombre de clúster que está en uso en otro espacio de nombres, se produce un error en la implementación del clúster.
NAMESPACE Espacio de nombres; se establece de forma predeterminada en default El espacio de nombres en el que se implementará el clúster. Para encontrar el espacio de nombres del supervisor, ejecute kubectl get namespaces.
CNI antrea o calico; de forma predeterminada es antrea Interfaz de redes de contenedor para cargas de trabajo alojadas, ya sea Antrea o Calico.
CONTROL_PLANE_MACHINE_COUNT Entero; CONTROL_PLANE_MACHINE_COUNT debe ser un número impar.
El valor predeterminado es 1 para dev y 3 para prod, como establece CLUSTER_PLAN.
Implemente un clúster de carga de trabajo con más nodos de plano de control que los valores predeterminados del plan dev o prod.
WORKER_MACHINE_COUNT Implemente un clúster de carga de trabajo con más nodos de trabajo que los valores predeterminados del plan dev o prod.
STORAGE_CLASSES La cadena vacía "" permite que los clústeres usen cualquier clase de almacenamiento en el espacio de nombres; o una lista de valores separados por comas de kubectl get storageclasses, por ejemplo, "SC-1,SC-2,SC-3". Clases de almacenamiento disponibles para la personalización de nodos.
DEFAULT_STORAGE_CLASS Cadena vacía "" para ningún valor predeterminado o valor de CLI, como se indica arriba. Clase de almacenamiento predeterminada para los trabajos o el plano de control.
CONTROL_PLANE_STORAGE_CLASS Valor devuelto por kubectl get storageclasses Clase de almacenamiento predeterminada para los nodos del plano de control.
WORKER_STORAGE_CLASS Clase de almacenamiento predeterminada para los nodos de trabajo.
NODE_POOL_0_NAME Cadena Nombre de grupo de nodos, etiquetas y manchas. Un TanzuKubernetesCluster solo puede tener un grupo de nodos.
NODE_POOL_0_LABELS Lista JSON de cadenas, por ejemplo, ["label1", "label2"]["label1", "label2"]
NODE_POOL_0_TAINTS Lista JSON de cadenas de pares clave-valor, por ejemplo, [{"key1": "value1"}, {"key2": "value2"}]

Puede establecer las variables anteriores realizando una de las siguientes acciones:

  • Incluirlos en el archivo de configuración del clúster que se envía a la opción --file de la CLI de Tanzu. Por ejemplo:

    CONTROL_PLANE_VM_CLASS: guaranteed-large
    
  • Desde la línea de comandos, configúrelos como variables de entorno local ejecutando export (en Linux y macOS) o SET (en Windows) en la línea de comandos. Por ejemplo:

    export CONTROL_PLANE_VM_CLASS=guaranteed-large
    
    Nota

    Si desea configurar ajustes de proxy únicos para un clúster de carga de trabajo, puede establecer TKG_HTTP_PROXY, TKG_HTTPS_PROXY y NO_PROXY como variables de entorno y, a continuación, utilizar la CLI de Tanzu para crear el clúster. Estas variables tienen prioridad sobre la configuración de proxy existente en vSphere with Tanzu.

Qué hacer a continuación

Continúe con Crear clústeres de carga de trabajo. Después de implementar un clúster de carga de trabajo en vSphere, debe configurar sus reservas de DHCP de nodo y DNS de endpoint como se describe en Configurar las reservas de DHCP del nodo y el registro de DNS de endpoint (solo vSphere).

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