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: OS_VERSION ubuntu: 20.04 OS_ARCH: amd64
 metadatos: annotations: osInfo: ubuntu,20.04,amd64 
 CONTROL_PLANE_MACHINE_COUNT: 3 
 controlPlane: … réplicas: 3 
 CONTROLPLANE_SIZE: tamaño grande: grande
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: machine: diskGiB: 40 memoryMiB: 16384 numCPUs: 4 
 CONTROL_PLANE_NODE_SEARCH_DOMAINS: corp.local, example.com 
 - nombre: controlPlane valor: Red de …: … searchDomains: - corp.local - example.com 
 CONTROL_PLANE_NODE_LABELS: ‘key1=value1,key2=value2’ 
 - nombre: controlPlane valor: … nodeLabels: - clave: key1 valor: valor1 - clave: key2 valor: valor2 
 WORKER_MACHINE_COUNT: 6 
 trabajos: machineDeployments: - clase: tkg-worker … réplicas: 6 
 WORKER_SIZE: tamaño extragrande: extragrande
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: valor de trabajador: Máquina de …: diskGiB: 80 memoryMiB: 32768 numCPUs: 8 
 WORKER_NODE_SEARCH_DOMAINS: corp.local, example.com
 - nombre: valor de trabajador: Red de …: 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: Metadatos "1": annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu,os-version=2004 name: md-0 replicas: 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: POD_SECURITY_STANDARD_WARN con privilegios: POD_SECURITY_STANDARD_ENFORCE con privilegios: línea base 
 - nombre: podSecurityStandard valor: desactivado: auditoría falsa: “con privilegios” hacer cumplir: “con privilegios” advertir: “línea base” auditVersion: “v1.26” enforceVersion: “v1.26” warnVersion: Exenciones "v1.26": 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:
 especificaciones: contenedores: - 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 AUTOSCALER_MIN_SIZE_AUTOSCALER_MAX_SIZE_ o are not set, the annotations settings take the values of WORKER_MACHINE_COUNT_*.
En el objeto Cluster, en spec.topology.workers:
 machineDeployments: - clase: metadatos de tkg-worker: anotaciones: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size "12": “8” … nombre: md-0 - clase: tkg-worker metadatos: anotaciones: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: Cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size "10": Nombre del … "6": 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
 - name: imageRepository value: 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.
 TKG_PROXY_CA_CERT: “LS0tLSBL[…]” TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: MIIEpgIH[…]"
 - nombre: valor de confianza: - nombre: datos de proxy: 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: ADDITIONAL_IMAGE_REGISTRY_1_SKIP_TLS_VERIFY "example.com/otherregistry-1": false ADDITIONAL_IMAGE_REGISTRY_1_CA_CERTIFICATE: “LS0tLSBL[…]” ADDITIONAL_IMAGE_REGISTRY_2: ADDITIONAL_IMAGE_REGISTRY_2_SKIP_TLS_VERIFY "example.com/otherregistry-2": true ADDITIONAL_IMAGE_REGISTRY_3: ADDITIONAL_IMAGE_REGISTRY_3_SKIP_TLS_VERIFY "example.com/otherregistry-3": 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
 metadata: name: my-cluster namespace: default
 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: habilitado: true
 CLUSTER_CIDR: 100.96.0.0/11 SERVICE_CIDR: 100.64.0.0/13
 spec: clusterNetwork: pods: cidrBlocks: - Servicios de 100.96.0.0/11: cidrBlocks: - 100.64.0.0/13
 CONTROLPLANE_CERTIFICATE_ROTATION_ENABLED: true CONTROLPLANE_CERTIFICATE_ROTATION_DAYS_BEFORE: 65
 - name: controlPlaneCertificateRotation valor: activate: true daysBefore: 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: ANTREA_FLOWEXPORTER_POLL_INTERVAL "flow-aggregator.svc:4739:tls": “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: habilitado: true portRange: 61000-62000
 ANTREA_EGRESS_EXCEPT_CIDRS: “10.0.0.0/6”
 egress: 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: VSPHERE_CONTROL_PLANE_ENDPOINT ipv4: 10.237.177.161 VSPHERE_REGION: my-region VSPHERE_ZONE: my-zone
 kind: VSphereCPIConfig spec: 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 Especificación: topología: variables: - nombre: apiServerEndpoint valor: 10.237.177.161

VSPHERE_MTU

 kind: Especificación del clúster: topología: variables: - nombre: controlPlane valor: red de …: mtu: 1500 - nombre: valor de trabajador: red de …: 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: Especificación de ClusterBootstrap: additionalPackages: - refName: tkg-storageclass* valuesDes: en línea: VSPHERE_STORAGE_POLICY_ID: my-local-sp

kind: Especificación del clúster: topología: variables: - nombre: valor de vcenter: centro de datos: /dc0 datastore: /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: Especificación del clúster: topología: variables: - nombre: valor de usuario: 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: Especificación del clúster: topología: variables: - nombre: controlPlane valor: machine: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 - nombre: valor de trabajo: máquina: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 
 NTP_SERVERS: time.google.com 
 kind: Especificación del clúster: topología: variables: - nombre: ntpServers valor: - time.google.com 
 VSPHERE_AZ_0: VSPHERE_AZ_1 rack1: rack2 VSPHERE_AZ_2: rack3 
 kind: Especificación del clúster: topología: trabajadores: machineDeployments: - clase: tkg-worker failureDomain: rack1 name: md-0 - class: tkg-worker failureDomain: rack2 name: md-1 - class: tkg-worker failureDomain: nombre del rack3: 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”
 - name: controlplane valor: network: nameservers: - 10.10.10.10 - 10.10.10.11 - nombre: valor de trabajo: red: servidores de nombres: - 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: valor de bastión: habilitado: 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: valor de red: subredes: - az: us-east-1a private: cidr: 10.0.0.0/24 id: subnet-0a7d376dde53c77ed public: cidr: 10.0.1.0/24 id: subnet-0794d50f57e9801b6 - az: us-west-2b private: cidr: 10.0.2.0/24 id: subnet-0c338780824d1c59d public: cidr: 10.0.3.0/24 id: subnet-0addabd635d02ba97 - az: ap-southeast-3 private: CIDR: 10.0.4.0/24 id: subnet-00b9638e419a6187b public: cidr: 10.0.5.0/24 id: subnet-0ed174ef16a2f43aa 
 AWS_VPC_CIDR: 10.0.0.0/16 
 - nombre: valor de red: vpc de …: cidr: 10.0.0.0/16 
 AWS_VPC_ID: vpc-0ce8bdfea218 
 - nombre: valor de red: vpc de …: 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: valor de red: … securityGroupOverrides: bastion: sg-1 apiServerLB: sg-2 lb: sg-3 controlPlane: sg-4 node: sg-5 
 AWS_IDENTITY_REF_NAME: my-aws-id AWS_IDENTITY_REF_KIND: AWSClusterRoleIdentity 
 - nombre: identityRef valor: nombre: my-aws-id kind: 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: - class: tkg-worker name: md-0 value: instanceType: m5.large rootVolume: sizeGiB: 80 
 CONTROL_PLANE_MACHINE_TYPE: t3.large AWS_CONTROL_PLANE_OS_DISK_SIZE_GIB: 80 
 - name: controlPlane value: 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: valor de ubicación: 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: valor de entorno: 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: habilitado: false 
 AZURE_VNET_CIDR: 10.0.0.0/16 AZURE_VNET_NAME: my-azure-vnet AZURE_VNET_RESOURCE_GROUP: my-azure-vnet-rg
 - nombre: valor de red: 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: predeterminado 
 - nombre: identityRef value: name: my-azure-id namespace: default  
 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 salienteLB: habilitado: true front-endIPCount: 1 subred: CIDR: 10.0.0.0/24 nombre: 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: worker valor: dataDisks: - sizeGiB: 256 osDisk: sizeGiB: 128 storageAccountType: Premium_LRS salienteLB: habilitado: true front-endIPCount: 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