Archivos de configuración del clúster de AWS

En este tema se explica cómo utilizar un archivo de configuración plano o especificaciones de objetos estilo Kubernetes para configurar un clúster de carga de trabajo de Tanzu Kubernetes Grid (TKG) antes de implementarlo en Amazon Web Services (AWS) con un 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 AWS que requieren alguna configuración fuera del archivo de configuración o las especificaciones de objetos del clúster, consulte Clústeres en AWS.

Importante

Tanzu Kubernetes Grid v2.4.x es la última versión de TKG que admite la creación de clústeres de carga de trabajo de TKG en AWS. La capacidad para crear clústeres de carga de trabajo de TKG en AWS se eliminará en la versión 2.5 de Tanzu Kubernetes Grid.

A partir de ahora, VMware recomienda utilizar Tanzu Mission Control para crear clústeres de AWS EKS nativos en lugar de crear nuevos clústeres de carga de trabajo de TKG en AWS. Para obtener información sobre cómo crear clústeres nativos de AWS EKS con Tanzu Mission Control, consulte Gestión del ciclo de vida de los clústeres de AWS EKS en la documentación de Tanzu Mission Control.

Para obtener más información, consulte Desuso de la administración de TKG y los clústeres de cargas de trabajo en AWS y Azure en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.4.

Descripción general

Para configurar un clúster de carga de trabajo antes de implementarlo en AWS, cree un archivo de configuración del clúster o un archivo de especificación de objeto de estilo Kubernetes. 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 AWS y crear los recursos que utilizará el clúster. Por ejemplo, puede especificar los tamaños de las máquinas virtuales del nodo de trabajo y del plano de control, distribuir nodos entre zonas de disponibilidad y compartir VPC entre clústeres.

Para obtener la lista completa de opciones que debe especificar al implementar clústeres de carga de trabajo en AWS, consulte la Referencia de variables del archivo de configuración.

Nota

Para mejorar la seguridad en un entorno de varios tenants, implemente los clústeres de carga de trabajo en una cuenta de AWS que sea diferente de la utilizada para implementar el clúster de administración. Para implementar clústeres de carga de trabajo en varias cuentas de AWS, consulte Clústeres en diferentes cuentas de AWS.

Crear un archivo de configuración

Para crear un archivo de configuración del clúster, puede utilizar la plantilla en Plantilla de clúster de carga de trabajo a continuación. Después de crear el archivo de configuración, continúe con Crear clústeres de carga de trabajo.

Plantilla de clúster de carga de trabajo

La siguiente plantilla incluye todas las opciones relevantes para implementar clústeres de carga de trabajo en AWS. Puede copiar esta plantilla y utilizarla para implementar clústeres de carga de trabajo en AWS.

Las opciones obligatorias no están comentadas. Los ajustes opcionales están comentados. Los valores predeterminados se incluyen donde corresponda.

A excepción de las opciones que se describen en las secciones situadas debajo de la plantilla, la forma en la que se configuran las variables para los clústeres de carga de trabajo que son específicas de AWS es idéntica para los clústeres de administración y los clústeres de carga de trabajo. Para obtener información sobre cómo configurar las variables, consulte Implementar clústeres de administración desde un archivo de configuración y Configuración del clúster de administración para AWS.

#! ---------------------------------------------------------------------
#! Cluster creation basic configuration
#! ---------------------------------------------------------------------

#! CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT:
CNI: antrea

#! ---------------------------------------------------------------------
#! Node configuration
#! AWS-only MACHINE_TYPE settings override cloud-agnostic SIZE settings.
#! ---------------------------------------------------------------------

# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
CONTROL_PLANE_MACHINE_TYPE: t3.large
NODE_MACHINE_TYPE: m5.large
# NODE_MACHINE_TYPE_1: ""
# NODE_MACHINE_TYPE_2: ""
# CONTROL_PLANE_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:

#! ---------------------------------------------------------------------
#! AWS Configuration
#! ---------------------------------------------------------------------

AWS_REGION:
# AWS_LOAD_BALANCER_SCHEME_INTERNAL: false
AWS_NODE_AZ: ""
# AWS_NODE_AZ_1: ""
# AWS_NODE_AZ_2: ""
# AWS_VPC_ID: ""
# AWS_PRIVATE_SUBNET_ID: ""
# AWS_PUBLIC_SUBNET_ID: ""
# AWS_PUBLIC_SUBNET_ID_1: ""
# AWS_PRIVATE_SUBNET_ID_1: ""
# AWS_PUBLIC_SUBNET_ID_2: ""
# AWS_PRIVATE_SUBNET_ID_2: ""
# AWS_VPC_CIDR: 10.0.0.0/16
# AWS_PRIVATE_NODE_CIDR: 10.0.0.0/24
# AWS_PUBLIC_NODE_CIDR: 10.0.1.0/24
# AWS_PRIVATE_NODE_CIDR_1: 10.0.2.0/24
# AWS_PUBLIC_NODE_CIDR_1: 10.0.3.0/24
# AWS_PRIVATE_NODE_CIDR_2: 10.0.4.0/24
# AWS_PUBLIC_NODE_CIDR_2: 10.0.5.0/24
# AWS_SECURITY_GROUP_APISERVER_LB: ""
# AWS_SECURITY_GROUP_BASTION: ""
# AWS_SECURITY_GROUP_CONTROLPLANE: ""
# AWS_SECURITY_GROUP_LB: ""
# AWS_SECURITY_GROUP_NODE: ""
# AWS_IDENTITY_REF_KIND: ""
# AWS_IDENTITY_REF_NAME: ""
# AWS_CONTROL_PLANE_OS_DISK_SIZE_GIB: 80
# AWS_NODE_OS_DISK_SIZE_GIB: 80
AWS_SSH_KEY_NAME:
BASTION_HOST_ENABLED: true

#! ---------------------------------------------------------------------
#! Common configuration
#! ---------------------------------------------------------------------

# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: false
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""

# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
# TKG_PROXY_CA_CERT: ""

ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true

CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13

# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""

#! ---------------------------------------------------------------------
#! Autoscaler configuration
#! ---------------------------------------------------------------------

ENABLE_AUTOSCALER: false
# AUTOSCALER_MAX_NODES_TOTAL: "0"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
# AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
# AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
# AUTOSCALER_MIN_SIZE_0:
# AUTOSCALER_MAX_SIZE_0:
# AUTOSCALER_MIN_SIZE_1:
# AUTOSCALER_MAX_SIZE_1:
# AUTOSCALER_MIN_SIZE_2:
# AUTOSCALER_MAX_SIZE_2:

#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------

# ANTREA_NO_SNAT: false
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_PROXY_ALL: false
# ANTREA_PROXY_NODEPORT_ADDRS: ""
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "30s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_KUBE_APISERVER_OVERRIDE:
# ANTREA_TRANSPORT_INTERFACE:
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_MULTICAST_IGMPQUERY_INTERVAL: "125s"
# ANTREA_TUNNEL_TYPE: geneve
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_ENABLE_BRIDGING_MODE: false
# ANTREA_DISABLE_TXCHECKSUM_OFFLOAD: false
# ANTREA_DNS_SERVER_OVERRIDE: ""
# ANTREA_MULTICLUSTER_ENABLE: false
# ANTREA_MULTICLUSTER_NAMESPACE: ""

Especificar la región

Cuando implemente un clúster en AWS, establezca AWS_REGION en la región en la que desea implementar el clúster. Puede establecer AWS_REGION en el archivo de configuración del clúster, una variable de entorno local o un perfil de credenciales, como se describe en Configurar credenciales de la cuenta de AWS.

Distribución de trabajos entre AZ

Al crear un clúster prod de varias AZ en AWS, Tanzu Kubernetes Grid distribuye uniformemente sus nodos de trabajo y plano de control entre las zonas de disponibilidad (AZ) que especificó en la configuración del clúster. Esto incluye clústeres de carga de trabajo que están configurados con cualquiera de los siguientes elementos:

  • La cantidad predeterminada de nodos del plano de control
  • La configuración de CONTROL_PLANE_MACHINE_COUNT que es mayor que la cantidad predeterminada de nodos del plano de control
  • Número predeterminado de nodos de trabajo
  • La configuración de WORKER_MACHINE_COUNT que es mayor que la cantidad predeterminada de nodos de trabajo

Por ejemplo, si especifica WORKER_MACHINE_COUNT: 5, Tanzu Kubernetes Grid implementa dos nodos de trabajo en la primera zona de disponibilidad, dos nodos de trabajo en la segunda zona de disponibilidad y un nodo de trabajo en la tercera zona de disponibilidad. Opcionalmente, puede personalizar este mecanismo de colocación de AZ predeterminado para los nodos de trabajo siguiendo las instrucciones de Configurar los ajustes de colocación de AZ para los nodos de trabajo a continuación. No se puede personalizar el mecanismo de colocación de AZ predeterminado para los nodos del plano de control.

Configurar los ajustes de colocación de AZ para los nodos de trabajo

Al crear un clúster prod de varias AZ en AWS, puede especificar opcionalmente cuántos nodos de trabajo crea el comando tanzu cluster create en cada una de las tres AZ.

Para ello:

  1. Incluya las siguientes variables en el archivo de configuración del clúster:

    • WORKER_MACHINE_COUNT_0: Establece el número de nodos de trabajo en la primera zona de disponibilidad, AWS_NODE_AZ.
    • WORKER_MACHINE_COUNT_1: Establece el número de nodos de trabajo en la segunda zona de disponibilidad, AWS_NODE_AZ_1.
    • WORKER_MACHINE_COUNT_2: Establece el número de nodos de trabajo en la tercera zona de disponibilidad, AWS_NODE_AZ_2.

    Estas variables se establecen además de otras opciones de configuración obligatorias y opcionales, como se describe en Plantilla de clúster de carga de trabajo a continuación.

  2. Cree el clúster. Por ejemplo:

    tanzu cluster create my-prod-cluster -f my-prod-cluster-config.yaml
    

Implementar un clúster prod desde un clúster de administración de desarrollo

Cuando crea un clúster de carga de trabajo prod a partir de un clúster de administración dev que se ejecuta en AWS, debe definir un subconjunto de variables adicionales en el archivo de configuración del clúster antes de ejecutar el comando tanzu cluster create. Esto permite a Tanzu Kubernetes Grid crear el clúster y distribuir su plano de control y nodos de trabajo entre las zonas de disponibilidad.

Para crear un clúster de carga de trabajo prod desde un clúster de administración dev en AWS, realice los siguientes pasos:

  1. Establezca las siguientes variables en el archivo de configuración del clúster:

    • Establezca PLAN en prod.
    • Variables de AWS_NODE_AZ: AWS_NODE_AZ se estableció al implementar el clúster de administración dev. Para el clúster de carga de trabajo prod, agregue AWS_NODE_AZ_1 y AWS_NODE_AZ_2.
    • Variables AWS_PUBLIC_SUBNET_ID (VPC existente): AWS_PUBLIC_NODE_CIDR o AWS_PUBLIC_SUBNET_ID se estableció al implementar el clúster de administración dev. Para el clúster de carga de trabajo prod, añada uno de los siguientes:
      • AWS_PUBLIC_NODE_CIDR_1 y AWS_PUBLIC_NODE_CIDR_2
      • AWS_PUBLIC_SUBNET_ID_1 y AWS_PUBLIC_SUBNET_ID_2
    • Variables AWS_PRIVATE_SUBNET_ID (VPC existente): AWS_PRIVATE_NODE_CIDR o AWS_PRIVATE_SUBNET_ID se estableció al implementar el clúster de administración dev. Para el clúster de carga de trabajo prod, añada uno de los siguientes:
      • AWS_PRIVATE_NODE_CIDR_1 y AWS_PRIVATE_NODE_CIDR_2
      • AWS_PRIVATE_SUBNET_ID_1 y AWS_PRIVATE_SUBNET_ID_2
  2. (Opcional) Personalice el mecanismo de colocación de AZ predeterminado para los nodos de trabajo que desea implementar siguiendo las instrucciones de Configurar los ajustes de colocación de AZ para los nodos de trabajo. De forma predeterminada, Tanzu Kubernetes Grid distribuye los nodos de trabajo prod de forma uniforme entre las zonas de disponibilidad.

  3. Implemente el clúster ejecutando el comando tanzu cluster create. Por ejemplo:

    tanzu cluster create my-cluster -f my-cluster-config.yaml
    

Crear un archivo de especificación de objeto

Puede utilizar la CLI de Tanzu para convertir un archivo de configuración del clúster en un archivo de especificación de objeto de estilo Kubernetes para un clúster de carga de trabajo basado en clases sin implementar el clúster:

  • Para generar un archivo de especificaciones de objetos para cada clúster basado en clases que cree contanzu cluster create , asegúrese de que la función auto-apply-generated-clusterclass-based-configuration está establecida en false en la configuración 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 especificaciones de objetos generado por la CLI de Tanzu. 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
    
  • Para generar un archivo de especificaciones de objetos 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
    

    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.

Qué hacer a continuación

Continúe con Crear clústeres de carga de trabajo.

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