Conversiones de variables de clase de clúster a archivo de configuración

En este tema se explica cómo las variables de los archivos de configuración del clúster de carga de trabajo se convierten a la configuración de variables dentro de objetos Cluster basados en clases y sus ClusterBootstrap y otros objetos subordinados en Tanzu Kubernetes Grid (TKG). Para obtener un objeto Cluster de ejemplo y sus objetos subordinados, consulte Objeto Cluster de ejemplo y sus objetos subordinados a continuación.

Descripción general: Archivo de configuración y variables de clase de clúster

Las variables del archivo de configuración y las variables del clúster basado en clases difieren:

  • Las variables del archivo de configuración:

  • La configuración de variables del clúster basado en clases es una configuración de YAML anidada dentro de las especificaciones de los objetos Cluster o ClusterBootstrap:

    • La configuración del objeto del Cluster:

      • La mayoría de la configuración del clúster está disponible y se puede cambiar de forma arbitraria.
      • Se define por el objeto ClusterClass como el valor spec.topology.class del clúster.
      • Se configura en los bloques controlPlane, workers o variables en spec.topology.
      • Ajuste de configuración:

        variables:
        - name: imageRepository
          value:
            host: stg-project.vmware.com
        
    • La configuración de ClusterBootstrap es una configuración única para redes de contenedores y otras infraestructuras de bajo nivel que no se pueden cambiar en un clúster existente.

Al ejecutar el comando tanzu cluster create con un archivo de configuración del clúster como se describe en Crear un clúster basado en clases, la CLI de Tanzu realiza esta conversión.

Configuración de nodos

En la siguiente tabla se enumeran las variables para configurar el plano de control y los nodos de trabajo, así como el sistema operativo que ejecutan las instancias de nodo. Para obtener información sobre las variables en la columna Variables del archivo de configuración, consulte Configuración de nodos en Referencia de variables del archivo de configuración.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables. El código de ejemplo de esta columna se aplica a los objetos del Cluster en vSphere. La estructura de objetos de en AWS y Azure puede diferir.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
OS_NAME: ubuntu
OS_VERSION: 20.04
OS_ARCH: amd64
metadatos:
  anotaciones:
    osInfo: ubuntu,20.04,amd64
    
CONTROL_PLANE_MACHINE_COUNT: 3
    
controlPlane:
  ...
  réplicas: 3
    
CONTROLPLANE_SIZE: large
SIZE: large
Los valores se convierten a la configuración machine basada en la infraestructura.
SIZE se aplica tanto al plano de control como a los trabajos.
- nombre: controlPlane
  valor:
    máquina:
      diskGiB: 40
      memoryMiB: 16384
      numCPU: 4
    
CONTROL_PLANE_NODE_SEARCH_DOMAINS: corp.local, example.com
    
- nombre: controlPlane
  valor:
    ...
    red:
      ...
      searchDomains:
      - corp.local
      - example.com
    
CONTROL_PLANE_NODE_LABELS: 'key1=value1,key2=value2'
    
- nombre: controlPlane
  valor:
    ...
    nodeLabels:
    - clave: key1
      valor: value1
    - clave: key2
      valor: value2
    
WORKER_MACHINE_COUNT: 6
    
trabajos:
  machineDeployments:
  - clase: tkg-worker
    ...
    réplicas: 6
    
WORKER_SIZE: extra-large
SIZE: extra-large
Los valores se convierten a la configuración machine basada en la infraestructura.
SIZE se aplica tanto al plano de control como a los trabajos.
- nombre: trabajo
  valor:
    ...
    máquina:
      diskGiB: 80
      memoryMiB: 32768
      numCPU: 8
    
WORKER_NODE_SEARCH_DOMAINS: corp.local, example.com
- nombre: trabajo
  valor:
    ...
    red:
      searchDomains:
      - corp.local
      - example.com
    
CUSTOM_TDNF_REPOSITORY_CERTIFICATE: "YPdeNjLW[...]"
- nombre: customTDNFRepository
  valor:
    certificado: YPdeNjLW[...]
    
WORKER_ROLLOUT_STRATEGY: RollingUpdate
  trabajos:
    machineDeployments:
    - clase: tkg-worker
      failureDomain: "1"
      metadatos:
        anotaciones:
          run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu,os-version=2004
      nombre: md-0
      réplicas: 1
      estrategia:
        tipo: RollingUpdate
    

Controlador de admisión de seguridad de pod (PSA)

En la siguiente tabla se enumeran las variables para configurar los criterios de seguridad de pods para el controlador de admisión de seguridad de pods. Para obtener información sobre las variables en la columna Variables del archivo de configuración (Configuration File Variables), consulte Estándares de seguridad de pod para el controlador de admisión de seguridad de pod en Referencia de variables del archivo de configuración.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
POD_SECURITY_STANDARD_DEACTIVATED: false
POD_SECURITY_STANDARD_AUDIT: con privilegios
POD_SECURITY_STANDARD_WARN: con privilegios
POD_SECURITY_STANDARD_ENFORCE: línea base
    
- nombre: podSecurityStandard 
  valor: 
    desactivado: false 
    auditoría: "con privilegios" 
    hacer cumplir: "con privilegios" 
    advertir: "línea base" 
    auditVersion: "v1.26" 
    enforceVersion: "v1.26" 
    warnVersion: "v1.26" 
    exenciones: 
      espacios de nombres ["kube-system", "tkg-system"] 
    

Escalador automático de clústeres

Cuando ENABLE_AUTOSCALER es true, la CLI de Tanzu crea un objeto Deployment para el Escalador automático de clústeres y agrega annotations del Escalador automático de clústeres al objeto Cluster. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte Escalador automático de clústeres en Referencia de variables del archivo de configuración.

Variables del archivo de configuración Estructura de objetos de implementación de escalador automático y clúster basado en clases
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_MAX_NODES_TOTAL: 0
    
En el objeto Deployment del Escalador automático de clústeres:
spec:
  containers:
  - args:
  ...
  - --scale-down-delay-after-add=10m
  - --scale-down-delay-after-delete=10s
  - --scale-down-delay-after-failure=3m
  - --scale-down-unneeded-time=10m
  - --max-node-provision-time=15m
  - --max-nodes-total=0
AUTOSCALER_MAX_SIZE_0: 12
AUTOSCALER_MIN_SIZE_0: 8
AUTOSCALER_MAX_SIZE_1: 10
AUTOSCALER_MIN_SIZE_1: 6
AUTOSCALER_MAX_SIZE_2: 8
AUTOSCALER_MIN_SIZE_2: 4
    
Si no se establecen AUTOSCALER_MAX_SIZE_* o AUTOSCALER_MIN_SIZE_*, la configuración de annotations toma los valores de WORKER_MACHINE_COUNT_*.
En el objeto Cluster, en spec.topology.workers:
machineDeployments:
- clase: tkg-worker
  metadatos:
    anotaciones:
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "12"
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "8"
      ...
  nombre: md-0
- clase: tkg-worker
  metadatos:
    anotaciones:
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "10"
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "6"
      ...
  nombre: md-1
...

Registro de imágenes privadas y proxy

En esta sección se enumeran las variables para usar proxies y registros de imágenes privadas, por ejemplo, en una implementación restringida por Internet.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases Notas
TKG_CUSTOM_IMAGE_REPOSITORY: example.com/yourproject
TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: true
- nombre: imageRepository
  valor:
    host: example.com/yourproject
    tlsCertificateValidation:
      enabled: false
tldCertificateValidation.enabled revierte la configuración booleana para TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY y no se escribe si su valor es true.
TKG_HTTP_PROXY_ENABLED: true
TKG_HTTP_PROXY: http://proxy.example.com:80
TKG_HTTPS_PROXY: https://proxy.example.com:3128
TKG_NO_PROXY: .noproxy.example.com,noproxy.example.com,192.168.0.0/24
- nombre: proxy
  valor:
    httpProxy: http://proxy.example.com:80
    httpsProxy: https://proxy.example.com:3128
    noProxy:
    - .noproxy.example.com
    - noproxy.example.com
    - 192.168.0.0/24
    - [...]
Internamente, la CLI de Tanzu anexa a los valores de la lista noProxy que no están establecidos en un archivo de configuración, como se describe en [Configuración de proxy](../../config-ref.md#proxies).
TKG_PROXY_CA_CERT: "LS0tLSBL[...]"
TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: MIIEpgIH[...]"
- nombre: trust
  valor:
    - nombre: proxy
      datos: LS0tLSBL[...]
    - nombre: imageRepository
      datos: MIIEpgIH [...]
Los valores son certificados de CA con codificación base64.
TKG_PROXY_CA_CERT tiene prioridad sobre TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE, y el valor trust imageRespository no se escribe si se establece el valor trust proxy.
ADDITIONAL_IMAGE_REGISTRY_1: "example.com/otherregistry-1"
ADDITIONAL_IMAGE_REGISTRY_1_SKIP_TLS_VERIFY: false
ADDITIONAL_IMAGE_REGISTRY_1_CA_CERTIFICATE: "LS0tLSBL[...]"
ADDITIONAL_IMAGE_REGISTRY_2: "example.com/otherregistry-2"
ADDITIONAL_IMAGE_REGISTRY_2_SKIP_TLS_VERIFY: true
ADDITIONAL_IMAGE_REGISTRY_3: "example.com/otherregistry-3"
ADDITIONAL_IMAGE_REGISTRY_3_SKIP_TLS_VERIFY: false
ADDITIONAL_IMAGE_REGISTRY_3_CA_CERTIFICATE: "MIIEpgIH[...]"
- nombre: additionalImageRegistries
  valor:
  - caCert: LS0tLSBL[...]
    host: example.com/otherregistry-1
    skipTlsVerify: false
  - host: example.com/otherregistry-2
    skipTlsVerify: true
  - caCert: MIIEpgIH [...]
    host: example.com/otherregistry-3
    skipTlsVerify: false

Variables comunes

En la siguiente tabla, se enumeran las variables que son comunes a todas las plataformas de destino.

Para obtener información sobre las variables de la columna Variables de archivo de configuración, consulte Variables comunes para todas las plataformas de destino en Referencia de variables de archivo de configuración.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
CLUSTER_NAME: my-cluster
NAMESPACE: valor predeterminado
metadatos:
  nombre: my-cluster
  espacio de nombres: predeterminado
CLUSTER_PLAN: dev
metadatos:
  anotaciones:
    tkg/plan: dev
INFRASTRUCTURE_PROVIDER: vsphere
topología:
    clase: tkg-vsphere-default-v1.0.0
    
CLUSTER_API_SERVER_PORT: 6443
- nombre: apiServerPort
  valor: 6443
CNI: antrea
- nombre: cni
  valor: antrea
ENABLE_AUDIT_LOGGING: true
- nombre: auditLogging
      valor:
        enabled : true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
spec:
  clusterNetwork:
    pods:
      cidrBlocks:
      - 100.96.0.0/11
    servicios:
      cidrBlocks:
      - 100.64.0.0/13
CONTROLPLANE_CERTIFICATE_ROTATION_ENABLED: true
CONTROLPLANE_CERTIFICATE_ROTATION_DAYS_BEFORE: 65
- nombre: controlPlaneCertificateRotation
  valor:
    activar: true
    días antes: 65

CNI de Antrea

En esta sección se enumeran las variables para configurar la interfaz de red de contenedor Antrea (CNI) de un clúster. Las variables del clúster basado en clases residen en el objeto AntreaConfig al que se hace referencia en la propiedad spec.cni.refName del objeto ClusterBootstrap.

Los clústeres basados en clases admiten muchas opciones de configuración de Antrea que no tienen variables de archivo de configuración de TKG correspondientes. Para ver todas las opciones de configuración de Antrea que se pueden establecer para objetos del Cluster basado en clases, consulte Puertas de funciones y otros temas en la documentación de Antrea.

En la columna Estructura del objeto AntreaConfig, todos los ajustes se encuentran en la definición del objeto AntreaConfig, en spec.antrea.config.

Variables del archivo de configuración Estructura del objeto AntreaConfig
ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
ANTREA_ENABLE_USAGE_REPORTING: false
ANTREA_KUBE_APISERVER_OVERRIDE: "https://192.168.77.100:6443"
ANTREA_NO_SNAT: false
ANTREA_TRAFFIC_ENCAP_MODE: "encap"
ANTREA_TRANSPORT_INTERFACE: "eth0"
ANTREA_TRANSPORT_INTERFACE_CIDRS: "10.0.0.2/24"
disableUdpTunnelOffload: false
enableUsageReporting: false
kubeAPIServerOverride: https://192.168.77.100:6443
noSNAT: false
trafficEncapMode: encap
transportInterface: eth0
transportInterfaceCIDRs:
- 10.0.0.2/24
ANTREA_EGRESS: true
ANTREA_IPAM: false
ANTREA_MULTICAST: false
ANTREA_NETWORKPOLICY_STATS: true
ANTREA_NODEPORTLOCAL: true
ANTREA_SERVICE_EXTERNALIP: false
ANTREA_POLICY: true
ANTREA_TRACEFLOW: true
featureGates:
  Egress: true
  AntreaIPAM: false
  Multicast: false
  NetworkPolicyStats: true
  NodePortLocal: true
  ServiceExternalIP: false
  AntreaPolicy: true
  AntreaTraceflow: true
ANTREA_PROXY: false
ANTREA_PROXY_ALL: false
ANTREA_PROXY_LOAD_BALANCER_IPS: true
ANTREA_PROXY_NODEPORT_ADDRS: "100.70.70.12"
ANTREA_PROXY_SKIP_SERVICES: 10.11.1.2,kube-system/kube-dns
antreaProxy:
  nodePortAddresses:
  - 100.70.70.12
  proxyAll: false
  proxyLoadBalancerIPs: true
  skipServices:
  - 10.11.1.2
  : kube-system/kube-dns
ANTREA_FLOWEXPORTER: false
ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "60s"
ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.svc:4739:tls"
ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
flowExporter:
  activeFlowTimeout: 60s
  collectorAddress: flow-aggregator.svc:4739:tls
  idleFlowTimeout: 15s
  pollInterval: 5s
ANTREA_NODEPORTLOCAL_ENABLED: true
ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
nodePortLocal:
  enabled: true
  portRange: 61000-62000
ANTREA_EGRESS_EXCEPT_CIDRS: "10.0.0.0/6"
salida:
  exceptCIDRs:
  - 10.0.0.0/6
ANTREA_MULTICAST_INTERFACES: "eth0"
multicastInterfaces:
- eth0

vSphere

En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en vSphere. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte vSphere en Referencia de variables del archivo de configuración. Las configuraciones enumeradas en la columna Estructura de objetos basados en clases están en los objetos del kind enumerado.

Variables del archivo de configuración Estructura de objetos
TKG_IP_FAMILY: ipv4
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.237.177.161
VSPHERE_REGION: my-region
VSPHERE_ZONE: my-zone
kind: Especificaciones de VSphereCPIConfig:
  vsphereCPI:
    ipFamily: ipv4
    vmNetwork:
      excludeExternalSubnetCidr: 10.237.177.161/32
      excludeInternalSubnetCidr: 10.237.177.161/32
    zone: my-zone

kind: Metadatos
del clúster:
  anotaciones:
    tkg.tanzu.vmware.com/cluster-controlplane-endpoint: 10.237.177.161
Especificaciones:
  topología:
    variables:
    - nombre: apiServerEndpoint
      valor: 10.237.177.161
VSPHERE_MTU

kind: Especificaciones
del clúster:
  topología:
    variables:
    - nombre: controlPlane
      valor:
        ...
        red:
            mtu: 1500
    - nombre: trabajo
      valor:
        ...
        red:
            mtu: 1.500
VSPHERE_DATACENTER: /dc0
VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-0
VSPHERE_FOLDER: /dc0/vm/folder0
VSPHERE_NETWORK: /dc0/network/VM Network
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/rp0
VSPHERE_SERVER: 10.237.179
VSPHERE_STORAGE_POLICY_ID: my-local-sp
VSPHERE_TEMPLATE: /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.2-tkg.1
VSPHERE_TLS_THUMBPRINT: B7:15:(...):1D:2F
kind: ClusterBootstrap
Especificaciones:
  additionalPackages:
  - refName: tkg-storageclass*
    valuesFrom:
      en línea:
        VSPHERE_STORAGE_POLICY_ID: my-local-sp

kind: Especificaciones
del clúster:
  topología:
    variables:
    - nombre: vcenter
      valor:
        datacenter: /dc0
        almacén de datos: /dc0/datastore/sharedVmfs-0
        folder: /dc0/vm/folder0
        network: /dc0/network/VM Network
        resourcePool: /dc0/host/cluster0/Resources/rp0
        server: 10.237.179.190
        storagePolicyID: my-local-sp
        template: /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.2-tkg.1
        tlsThumbprint: B7:15:(...):1D:2F
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa NzaC1yc2EA[...]==
kind: Especificaciones
del clúster:
  topología:
    variables:
    - nombre: usuario
      valor:
        sshAuthorizedKeys:
        - ssh-rsa NzaC1yc2EA [...] ==
VSPHERE_CONTROL_PLANE_DISK_GIB: "30"
VSPHERE_CONTROL_PLANE_MEM_MIB: "2048"
VSPHERE_CONTROL_PLANE_NUM_CPUS: "2"
VSPHERE_WORKER_DISK_GIB: "50"
VSPHERE_WORKER_MEM_MIB: "4096"
VSPHERE_WORKER_NUM_CPUS: "4"
kind: Especificaciones
del clúster:
  topología:
    variables:
    - nombre: controlPlane
      valor:
        máquina:
          diskGiB: 40
          memoryMiB: 8192
          numCPUs: 2
    - nombre: trabajo
      valor:
        máquina:
          diskGiB: 40
          memoryMiB: 8192
          numCPUs: 2
NTP_SERVERS: time.google.com
kind: Especificaciones
del clúster:
  topología:
    variables:
    - nombre: ntpServers
      valor:
      - time.google.com
VSPHERE_AZ_0: rack1
VSPHERE_AZ_1: rack2
VSPHERE_AZ_2: rack3
kind: Especificaciones
del clúster:
  topología:
    trabajos:
      machineDeployments:
      - clase: tkg-worker
        failureDomain: rack1
        nombre: md-0
      - clase: tkg-worker
        failureDomain: rack2
        nombre: md-1
      - clase: tkg-worker
        failureDomain: rack3
        nombre: md-2
CONTROL_PLANE_NODE_NAMESERVERS: “10.10.10.10,10.10.10.11”
WORKER_NODE_NAMESERVERS: “10.10.10.10,10.10.10.11”
- nombre: controlplane
  valor:
	red:
	  nameservers:
	  - 10.10.10.10
	  - 10.10.10.11
- nombre: trabajo
  valor:
	red:
	  nameservers:
	  - 10.10.10.10
	  - 10.10.10.11
    

AWS

En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en AWS. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte AWS en Referencia de variables del archivo de configuración.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
AWS_PROFILE
    
N/D
Esta configuración no se almacena en el objeto Cluster.
AWS_REGION: us-east-1
    
- nombre: región
  valor: us-east-1
    
AWS_SSH_KEY_NAME: aws-tkg-clusteradmin
    
- nombre: sshKeyName
  valor: aws-tkg-clusteradmin
    
AWS_LOAD_BALANCER_SCHEME_INTERNAL: false
    
- nombre: loadBalancerSchemeInternal
  valor: false
BASTION_HOST_ENABLED: true
    
- nombre: bastión
  valor:
    enabled : true
    
AWS_NODE_AZ: us-east-1a
AWS_PRIVATE_NODE_CIDR: 10.0.0.0/24
AWS_PRIVATE_SUBNET_ID: subnet-0a7d376dde53c77ed
AWS_PUBLIC_NODE_CIDR: 10.0.1.0/24
AWS_PUBLIC_SUBNET_ID: subnet-0794d50f57e9801b6
AWS_NODE_AZ_1: us-west-2b
AWS_PRIVATE_NODE_CIDR_1: 10.0.2.0/24
AWS_PRIVATE_SUBNET_ID_1: subnet-0c338780824d1c59d
AWS_PUBLIC_NODE_CIDR_1: 10.0.3.0/24
AWS_PUBLIC_SUBNET_ID_1: subnet-0addabd635d02ba97
AWS_NODE_AZ_2: ap-southeast-3
AWS_PRIVATE_NODE_CIDR_2: 10.0.4.0/24
AWS_PRIVATE_SUBNET_ID_2: subnet-00b9638e419a6187b
AWS_PUBLIC_NODE_CIDR_2: 10.0.5.0/24
AWS_PUBLIC_SUBNET_ID_2: subnet-0ed174ef16a2f43aa
- nombre: red
  valor:
    subredes:
    - az: us-east-1a
      privado:
        cidr: 10.0.0.0/24
        id: subnet-0a7d376dde53c77ed
      público:
        cidr: 10.0.1.0/24
        id: subnet-0794d50f57e9801b6
    - az: us-west-2b
      privado:
        cidr: 10.0.2.0/24
        id: subnet-0c338780824d1c59d
      público:
        cidr: 10.0.3.0/24
        id: subnet-0addabd635d02ba97
    - az: ap-southeast-3
      privado:
        cidr: 10.0.4.0/24
        id: subnet-00b9638e419a6187b
      público:
        cidr: 10.0.5.0/24
        id: subnet-0ed174ef16a2f43aa
    
AWS_VPC_CIDR: 10.0.0.0/16
    
- nombre: red
  valor:
    ...
    vpc:
      cidr: 10.0.0.0/16
    
AWS_VPC_ID: vpc-0ce8bdfea218
    
- nombre: red
  valor:
    ...
    vpc:
      existingID: vpc-0ce8bdfea218
    
AWS_SECURITY_GROUP_BASTION: sg-1
AWS_SECURITY_GROUP_APISERVER_LB: sg-2
AWS_SECURITY_GROUP_LB: sg-3
AWS_SECURITY_GROUP_CONTROLPLANE: sg-4
AWS_SECURITY_GROUP_NODE: sg-5
    
- nombre: red
  valor:
    ...
    securityGroupOverrides:
      bastión: sg-1
      apiServerLB: sg-2
      lb: sg-3
      controlPlane: sg-4
      nodo: sg-5
    
AWS_IDENTITY_REF_NAME: my-aws-id
AWS_IDENTITY_REF_KIND: AWSClusterRoleIdentity
    
- nombre: identityRef
  valor:
    nombre: my-aws-id
    tipo: AWSClusterRoleIdentity
    
NODE_MACHINE_TYPE: m5.large
AWS_NODE_OS_DISK_SIZE_GIB: 80
    
En una implementación de varias zonas de disponibilidad, también puede establecer NODE_MACHINE_TYPE_1 y NODE_MACHINE_TYPE_2
En el objeto Cluster, en spec.topology.workers:
machineDeployments:
- clase: tkg-worker
  nombre: md-0
  valor:
    instanceType: m5.large
    rootVolume:
      sizeGiB: 80
    
CONTROL_PLANE_MACHINE_TYPE: t3.large
AWS_CONTROL_PLANE_OS_DISK_SIZE_GIB: 80
    
- nombre: controlPlane
  valor:
    instanceType: t3.large
    rootVolume:
      sizeGiB: 80
    

Microsoft Azure

En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en Microsoft Azure. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte Microsoft Azure en Referencia de variables del archivo de configuración.

En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name/value se encuentran en la definición del objeto del Cluster bajo spec.topology.variables.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_TENANT_ID
N/D
Esta configuración no se expone en el objeto Cluster.
AZURE_LOCATION: eastus2
- nombre: ubicación
  valor: eastus2
AZURE_RESOURCE_GROUP: my-azure-rg
- nombre: resourceGroup
  valor: my-azure-rg
AZURE_SUBSCRIPTION_ID: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
- nombre: subscriptionID
  valor: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
AZURE_ENVIRONMENT: AzurePublicCloud
- nombre: entorno
  valor: AzurePublicCloud
AZURE_SSH_PUBLIC_KEY_B64: "c3NoLXJzYSBB [...] vdGFsLmlv"
- nombre: sshPublicKey
  valor: c3NoLXJzYSBB [...] vdGFsLmlv
		
AZURE_FRONTEND_PRIVATE_IP: 10.0.0.100
Establezca si AZURE_ENABLE_PRIVATE_CLUSTER es true.
- nombre: frontendPrivateIP
  valor: 10.0.0.100
    
AZURE_CUSTOM_TAGS: "foo=bar, plan=prod"
- nombre: customTags
  valor: "foo=bar, plan=prod"
    
AZURE_ENABLE_ACCELERATED_NETWORKING: true
- nombre: acceleratedNetworking
  valor:
    enabled : true
    
AZURE_ENABLE_PRIVATE_CLUSTER: false
- nombre: privateCluster
  valor:
    enabled: false
    
AZURE_VNET_CIDR: 10.0.0.0/16
AZURE_VNET_NAME: my-azure-vnet
AZURE_VNET_RESOURCE_GROUP: my-azure-vnet-rg
- nombre: red
  valor:
    vnet:
      cidrBlocks:
      - 10.0.0.0/16
      nombre: my-azure-vnet
      resourceGroup: my-azure-vnet-rg
AZURE_IDENTITY_NAME: my-azure-id
AZURE_IDENTITY_NAMESPACE: valor predeterminado
    
- nombre: identityRef
  valor:
    nombre: my-azure-id
    espacio de nombres: predeterminado  
AZURE_CONTROL_PLANE_DATA_DISK_SIZE_GIB: 256
AZURE_CONTROL_PLANE_OS_DISK_SIZE_GIB: 128
AZURE_CONTROL_PLANE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
AZURE_ENABLE_CONTROL_PLANE_OUTBOUND_LB: true
AZURE_CONTROL_PLANE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
AZURE_CONTROL_PLANE_SUBNET_CIDR: 10.0.0.0/24
AZURE_CONTROL_PLANE_SUBNET_NAME: my-azure-cp-subnet
AZURE_CONTROL_PLANE_MACHINE_TYPE: Standard_D2s_v3
    
- nombre: controlPlane
  valor:
    dataDisks:
    - sizeGiB: 256
    osDisk:
      sizeGiB: 128
      storageAccountType: Premium_LRS
    outboundLB:
      enabled: true
      frontendIPCount: 1
    subred:
      cidr: 10.0.0.0/24
      name: my-azure-cp-subnet
    vmSize: Standard_D2s_v3
    
AZURE_ENABLE_NODE_DATA_DISK: true
AZURE_NODE_DATA_DISK_SIZE_GIB: 256
AZURE_NODE_OS_DISK_SIZE_GIB: 128
AZURE_NODE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
AZURE_ENABLE_NODE_OUTBOUND_LB: true
AZURE_NODE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
AZURE_NODE_OUTBOUND_LB_IDLE_TIMEOUT_IN_MINUTES: 4
AZURE_NODE_SUBNET_CIDR: 10.0.1.0/24
AZURE_NODE_SUBNET_NAME: my-azure-worker-subnet
AZURE_NODE_MACHINE_TYPE: Standard_D2s_v3
    
- nombre: trabajo
  valor:
    dataDisks:
    - sizeGiB: 256
    osDisk:
      sizeGiB: 128
      storageAccountType: Premium_LRS
    outboundLB:
      enabled: true
      frontendIPCount: 1
      idleTimeoutInMinutes: 4
    subred:
      cidr: 10.0.1.0/24
      nombre: my-azure-worker-subnet
    vmSize: Standard_D2s_v3
    

NSX Advanced Load Balancer

En esta sección se enumeran las variables para configurar NSX Advanced Load Balancer (ALB) en TKG.

Variables del archivo de configuración Estructura de objetos del clúster basado en clases
AVI_CONTROL_PLANE_HA_PROVIDER
topología:
  variables:
    - nombre: aviAPIServerHAProvider
      valor: true
    

Objeto Cluster de ejemplo y sus objetos subordinados

Al pasar un archivo de configuración de clúster a la marca --file de tanzu cluster create, el comando convierte el archivo de configuración del clúster en un archivo de especificación de clúster. Consulte a continuación un objeto Cluster de ejemplo y sus objetos subordinados generados por tanzu cluster create del siguiente archivo de configuración:

CLUSTER_NAME: example-cluster
CLUSTER_PLAN: dev
NAMESPACE: default
CNI: antrea
VSPHERE_NETWORK: /dc0/network/VM Network
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAACCCza2EBBB[...]ADGQAg/POl6vyWOmQ==
VSPHERE_USERNAME: [email protected]
VSPHERE_PASSWORD: 1234567AbC!
VSPHERE_SERVER: 10.XXX.XXX.71
VSPHERE_DATACENTER: /dc0
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/example-tkg
VSPHERE_DATASTORE: /dc0/datastore/vsanDatastore
VSPHERE_FOLDER: /dc0/vm/example-tkg
VSPHERE_TLS_THUMBPRINT: ""
VSPHERE_INSECURE: true
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.XXX.XXX.75
AVI_CONTROL_PLANE_HA_PROVIDER: false
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
ENABLE_AUTOSCALER: false

Objeto Cluster resultante y sus objetos subordinados:

apiVersion: cpi.tanzu.vmware.com/v1alpha1
kind: VSphereCPIConfig
metadata:
  name: example-cluster
  namespace: default
spec:
  vsphereCPI:
    mode: vsphereCPI
    tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    vmNetwork:
      excludeExternalSubnetCidr: 10.XXX.XXX.75/32
      excludeInternalSubnetCidr: 10.XXX.XXX.75/32
---
apiVersion: csi.tanzu.vmware.com/v1alpha1
kind: VSphereCSIConfig
metadata:
  name: example-cluster
  namespace: default
spec:
  vsphereCSI:
    config:
      datacenter: /dc0
      httpProxy: ""
      httpsProxy: ""
      insecureFlag: true
      noProxy: ""
      region: null
      tlsThumbprint: ""
      useTopologyCategories: false
      zone: null
    mode: vsphereCSI
---
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
  annotations:
    tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME
  name: example-cluster
  namespace: default
spec:
  additionalPackages:
  - refName: metrics-server*
  - refName: secretgen-controller*
  - refName: pinniped*
  cpi:
    refName: vsphere-cpi*
    valuesFrom:
      providerRef:
        apiGroup: cpi.tanzu.vmware.com
        kind: VSphereCPIConfig
        name: example-cluster
  csi:
    refName: vsphere-csi*
    valuesFrom:
      providerRef:
        apiGroup: csi.tanzu.vmware.com
        kind: VSphereCSIConfig
        name: example-cluster
  kapp:
    refName: kapp-controller*
---
apiVersion: v1
kind: Secret
metadata:
  name: example-cluster
  namespace: default
stringData:
  password: 1234567AbC!
  username: [email protected]
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  annotations:
    osInfo: ubuntu,20.04,amd64
    tkg.tanzu.vmware.com/cluster-controlplane-endpoint: 10.XXX.XXX.75
    tkg/plan: dev
  labels:
    tkg.tanzu.vmware.com/cluster-name: example-cluster
  name: example-cluster
  namespace: default
spec:
  clusterNetwork:
    pods:
      cidrBlocks:
      - 100.96.0.0/11
    services:
      cidrBlocks:
      - 100.64.0.0/13
  topology:
    class: tkg-vsphere-default-CLUSTER-CLASS-VERSION
    controlPlane:
      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=ubuntu
      replicas: 1
    variables:
    - name: cni
      value: antrea
    - name: controlPlaneCertificateRotation
      value:
        activate: true
        daysBefore: 90
    - name: auditLogging
      value:
        enabled: false
    - name: podSecurityStandard
      value:
        audit: restricted
        deactivated: false
        warn: restricted
    - name: apiServerEndpoint
      value: 10.XXX.XXX.75
    - name: aviAPIServerHAProvider
      value: false
    - name: vcenter
      value:
        cloneMode: fullClone
        datacenter: /dc0
        datastore: /dc0/datastore/vsanDatastore
        folder: /dc0/vm/example-tkg
        network: /dc0/network/VM Network
        resourcePool: /dc0/host/cluster0/Resources/example-tkg
        server: 10.XXX.XXX.71
        storagePolicyID: ""
        tlsThumbprint: ""
    - name: user
      value:
        sshAuthorizedKeys:
        - ssh-rsa AAAACCCza2EBBB[...]ADGQAg/POl6vyWOmQ==
    - name: controlPlane
      value:
        machine:
          diskGiB: 40
          memoryMiB: 8192
          numCPUs: 2
    - name: worker
      value:
        machine:
          diskGiB: 40
          memoryMiB: 4096
          numCPUs: 2
    - name: security
      value:
        fileIntegrityMonitoring:
          enabled: false
        imagePolicy:
          pullAlways: false
          webhook:
            enabled: false
            spec:
              allowTTL: 50
              defaultAllow: true
              denyTTL: 60
              retryBackoff: 500
        kubeletOptions:
          eventQPS: 50
          streamConnectionIdleTimeout: 4h0m0s
        systemCryptoPolicy: default
    version: KUBERNETES-VERSION
    workers:
      machineDeployments:
      - class: tkg-worker
        metadata:
          annotations:
            run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=ubuntu
        name: md-0
        replicas: 1
        strategy:
          type: RollingUpdate

El archivo de especificación de objeto de ejemplo anterior incluye el siguiente texto de marcador de posición:

  • TKR-NAME en tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME: Establecido por tanzu cluster create en una versión de Tanzu Kubernetes compatible (TKr), en función de la configuración. Por ejemplo, tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.27.5---vmware.1-tkg.1. v1.27.5---vmware.1-tkg.1 es el TKr predeterminado para esta versión de Tanzu Kubernetes Grid.
  • KUBERNETES-VERSION en version: KUBERNETES-VERSION: Establecido por tanzu cluster create en una versión de Kubernetes compatible (TKr), en función de la configuración. Por ejemplo, version: v1.27.5+vmware.1-tkg.1. v1.27.5+vmware.1-tkg.1 es la versión predeterminada de Kubernetes para esta versión de Tanzu Kubernetes Grid.
  • CLUSTER-CLASS-VERSION en class: tkg-vsphere-default-CLUSTER-CLASS-VERSION: Es la versión de la class predeterminada. Por ejemplo, class: tkg-vsphere-default-v1.1.1.
check-circle-line exclamation-circle-line close-line
Scroll to top icon