Conversione delle variabili del file di configurazione in variabili della classe del cluster

Questo argomento spiega in che modo le variabili nei file di configurazione del cluster del carico di lavoro vengono convertite in impostazioni di variabili in oggetti Cluster basati sulla classe, nonché nei relativi ClusterBootstrap e negli altri oggetti subordinati in Tanzu Kubernetes Grid (TKG). Per un oggetto Cluster di esempio e i relativi oggetti subordinati, vedere Oggetto Cluster di esempio e relativi oggetti subordinati di seguito.

Panoramica: Variabili del file di configurazione e variabili della classe Cluster

Le variabili del file di configurazione e le variabili del cluster basate sulla classe sono diverse:

  • Le variabili del file di configurazione sono:

  • Le impostazioni delle variabili del cluster basate sulla classe sono impostazioni YAML nidificate nelle specifiche degli oggetti Cluster o ClusterBootstrap:

    • Le impostazioni dell'oggetto Cluster sono:

      • La maggior parte delle impostazioni del cluster disponibili e possono essere modificate in modo arbitrario.
      • Definite dal set di oggetti ClusterClass come valore spec.topology.class del cluster.
      • Impostate nei blocchi controlPlane, workers o variables in spec.topology.
      • Impostazione di esempio:

        variables:
        - name: imageRepository
          value:
            host: stg-project.vmware.com
        
    • Le impostazioni ClusterBootstrap sono alcune impostazioni una tantum per la rete dei container e altre infrastrutture di basso livello che non possono essere modificate in un cluster esistente.

Quando si esegue il comando tanzu cluster create con un file di configurazione del cluster come descritto in Creazione di un cluster basato sulla classe, la CLI di Tanzu esegue questa conversione.

Configurazione del nodo

Nella tabella seguente sono elencate le variabili per la configurazione del piano di controllo e dei nodi worker, nonché il sistema operativo eseguito dalle istanze dei nodi. Per informazioni sulle variabili nella colonna Variabili del file di configurazione, vedere Configurazione del nodo in Informazioni di riferimento sulle variabili del file di configurazione.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables. Il codice di esempio in questa colonna si applica agli oggetti Cluster in vSphere. La struttura degli oggetti in AWS e Azure potrebbe essere diversa.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
OS_NAME: ubuntu
OS_VERSION: 20.04
OS_ARCH: amd64
metadata:
  annotations:
    osInfo: ubuntu,20.04,amd64
    
CONTROL_PLANE_MACHINE_COUNT: 3
    
controlPlane:
  ...
  replicas: 3
    
CONTROLPLANE_SIZE: large
SIZE: large
I valori vengono convertiti in impostazioni machine in base all'infrastruttura.
SIZE si applica sia al piano di controllo sia ai worker.
- name: controlPlane
  value:
    machine:
      diskGiB: 40
      memoryMiB: 16384
      numCPUs: 4
    
CONTROL_PLANE_NODE_SEARCH_DOMAINS: corp.local, example.com
    
- name: controlPlane
  value:
    ...
    network:
      ...
      searchDomains:
      - corp.local
      - example.com
    
CONTROL_PLANE_NODE_LABELS: 'key1=value1,key2=value2'
    
- name: controlPlane
  value:
    ...
    nodeLabels:
    - key: key1
      value: value1
    - key: key2
      value: value2
    
WORKER_MACHINE_COUNT: 6
    
workers:
  machineDeployments:
  - class: tkg-worker
    ...
    replicas: 6
    
WORKER_SIZE: extra-large
SIZE: extra-large
I valori vengono convertiti in impostazioni machine in base all'infrastruttura.
SIZE si applica sia al piano di controllo sia ai worker.
- name: worker
  value:
    ...
    machine:
      diskGiB: 80
      memoryMiB: 32768
      numCPUs: 8
    
WORKER_NODE_SEARCH_DOMAINS: corp.local, example.com
- name: worker
  value:
    ...
    network:
      searchDomains:
      - corp.local
      - example.com
    
CUSTOM_TDNF_REPOSITORY_CERTIFICATE: "YPdeNjLW[...]"
- name: customTDNFRepository
  value:
    certificate: YPdeNjLW[...]
    
WORKER_ROLLOUT_STRATEGY: RollingUpdate
  workers:
    machineDeployments:
    - class: tkg-worker
      failureDomain: "1"
      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu,os-version=2004
      name: md-0
      replicas: 1
      strategy:
        type: RollingUpdate
    

Controller di ammissione sicurezza pod (PSA)

Nella tabella seguente sono elencate le variabili per la configurazione degli standard di sicurezza del pod per il controller di ammissione della sicurezza del pod. Per informazioni sulle variabili nella colonna Variabili del file di configurazione, vedere Standard di sicurezza del pod per tutti i controller di ammissione della sicurezza del pod in Informazioni di riferimento sulle variabili del file di configurazione.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
POD_SECURITY_STANDARD_DEACTIVATED: false
POD_SECURITY_STANDARD_AUDIT: privileged
POD_SECURITY_STANDARD_WARN: privileged
POD_SECURITY_STANDARD_ENFORCE: baseline
    
- name: podSecurityStandard 
  value: 
    deactivated: false 
    audit: "privileged" 
    enforce: "privileged" 
    warn: “baseline” 
    auditVersion: "v1.26" 
    enforceVersion: "v1.26" 
    warnVersion: "v1.26" 
    exemptions: 
      namespaces: ["kube-system", "tkg-system"] 
    

Scalabilità automatica del cluster

Quando ENABLE_AUTOSCALER è true, la CLI di Tanzu crea un oggetto Deployment per la scalabilità automatica del cluster e aggiunge annotations della scalabilità automatica del cluster all'oggetto Cluster. Per informazioni sulle variabili nella colonna Variabili del file di configurazione seguente, vedere Scalabilità automatica del cluster in Informazioni di riferimento sulle variabili del file di configurazione.

Variabili del file di configurazione Struttura dell'oggetto distribuzione del cluster basato sulla classe e della scalabilità automatica
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
    
Nell'oggetto Deployment della scalabilità automatica del cluster:
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
    
Se AUTOSCALER_MAX_SIZE_* o AUTOSCALER_MIN_SIZE_* non sono impostati, le impostazioni annotations accettano i valori di WORKER_MACHINE_COUNT_*.
Nell'oggetto Cluster, in spec.topology.workers:
machineDeployments:
- class: tkg-worker
  metadata:
    annotations:
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "12"      cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "8"
      ...
  name: md-0
- class: tkg-worker
  metadata:
    annotations:
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "10"
      cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "6"
      ...
  name: md-1
...

Proxy e registro immagini privato

In questa sezione sono elencate le variabili per l'utilizzo di proxy e registri di immagini privati, ad esempio in una distribuzione con limitazioni Internet.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe Note
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 inverte l'impostazione booleana per TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY e non viene scritto se il suo valore è 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
- name: proxy
  value:
    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 di Tanzu aggiunge all'elenco noProxy i valori che non sono impostati in un file di configurazione, come descritto in [Configurazione proxy](../../config-ref.md#proxies).
TKG_PROXY_CA_CERT: "LS0tLSBL[...]"
TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: MIIEpgIH[...]"
- name: trust
  value:
    - name: proxy
      data: LS0tLSBL[...]
    - name: imageRepository
      data: MIIEpgIH[...]
I valori sono certificati CA con codifica base64.
TKG_PROXY_CA_CERT ha la precedenza su TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE e il valore trust imageRespository non viene scritto se è impostato il valore 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[...]"
- name: additionalImageRegistries
  value:
  - 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

Variabili comuni

Nella tabella seguente sono elencate le variabili comuni a tutte le piattaforme di destinazione.

Per informazioni sulle variabili nella colonna Variabili del file di configurazione, vedere Variabili comuni per tutte le piattaforme di destinazione in Informazioni di riferimento sulle variabili del file di configurazione.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
CLUSTER_NAME: my-cluster
NAMESPACE: default
metadata:
  name: my-cluster
  namespace: default
CLUSTER_PLAN: dev
metadata:
  annotations:
    tkg/plan: dev
INFRASTRUCTURE_PROVIDER: vsphere
topology:
    class: tkg-vsphere-default-v1.0.0
    
CLUSTER_API_SERVER_PORT: 6443
- name: apiServerPort
  value: 6443
CNI: antrea
- name: cni
  value: antrea
ENABLE_AUDIT_LOGGING: true
- name: auditLogging
      value:
        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
    services:
      cidrBlocks:
      - 100.64.0.0/13
CONTROLPLANE_CERTIFICATE_ROTATION_ENABLED: true
CONTROLPLANE_CERTIFICATE_ROTATION_DAYS_BEFORE: 65
- name: controlPlaneCertificateRotation
  value:
    activate: true
    daysBefore: 65

CNI Antrea

In questa sezione sono elencate le variabili per la configurazione dell'interfaccia CNI (Container Network Interface) Antrea di un cluster. Le variabili del cluster basato sulla classe si trovano nell'oggetto AntreaConfig a cui si fa riferimento nella proprietà spec.cni.refName dell'oggetto ClusterBootstrap.

I cluster basati sulla classe supportano molte opzioni di configurazione di Antrea che non hanno variabili del file di configurazione di TKG corrispondenti. Per tutte le opzioni di configurazione di Antrea che possono essere impostate per gli oggetti Cluster basati sulla classe, vedere Gate delle funzionalità e altri argomenti nella documentazione di Antrea.

Nella colonna Struttura dell'oggetto AntreaConfig tutte le impostazioni si trovano nella definizione dell'oggetto AntreaConfig in spec.antrea.config.

Variabili del file di configurazione Struttura dell'oggetto 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
  proxyLoadBalancerIP: 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"
egress:
  exceptCIDRs:
  - 10.0.0.0/6
ANTREA_MULTICAST_INTERFACES: "eth0"
multicastInterfaces:
- eth0

vSphere

In questa sezione sono elencate le variabili per la distribuzione dei cluster del carico di lavoro in vSphere. Per informazioni sulle variabili nella colonna Variabili del file di configurazione seguente, vedere vSphere in Informazioni di riferimento sulle variabili del file di configurazione. Le impostazioni elencate nella colonna Struttura dell'oggetto basato sulla classe si trovano negli oggetti kind elencati.

Variabili del file di configurazione Struttura dell'oggetto
TKG_IP_FAMILY: ipv4
VSPHERE_CONTROL_PLANE_ENDPOINT: 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: Cluster
metadata:
  annotations:
    tkg.tanzu.vmware.com/cluster-controlplane-endpoint: 10.237.177.161
spec:
  topology:
    variables:
    - name: apiServerEndpoint
      value: 10.237.177.161
VSPHERE_MTU

kind: Cluster
spec:
  topology:
    variables:
    - name: controlPlane
  value:
        ...
        network:
            mtu: 1500
    - name: worker
      value:
        ...
        network:
            mtu: 1500
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
spec:
  additionalPackages:
  - refName: tkg-storageclass*
    valuesFrom:
      inline:
        VSPHERE_STORAGE_POLICY_ID: my-local-sp

kind: Cluster
spec:
  topology:
    variables:
    - name: vcenter
      value:
        datacenter: /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: Cluster
spec:
  topology:
    variables:
    - name: user
      value:
        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: Cluster
spec:
  topology:
    variables:
    - name: controlPlane
  value:
        machine:
          diskGiB: 40
      memoryMiB: 8192
          numCPUs: 2
    - name: worker
      value:
        machine:
          diskGiB: 40
      memoryMiB: 8192
          numCPUs: 2
NTP_SERVERS: time.google.com
kind: Cluster
spec:
  topology:
    variables:
    - name: ntpServers
      value:
      - time.google.com
VSPHERE_AZ_0: rack1
VSPHERE_AZ_1: rack2
VSPHERE_AZ_2: rack3
kind: Cluster
spec:
  topology:
    workers:
      machineDeployments:
      - class: tkg-worker
        failureDomain: rack1
        name: md-0
      - class: tkg-worker
        failureDomain: rack2
        name: md-1
      - class: tkg-worker
        failureDomain: rack3
        name: 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
  value:
	network:
	  nameservers:
	  - 10.10.10.10
	  - 10.10.10.11
- name: worker
  value:
	network:
	  nameservers:
	  - 10.10.10.10
	  - 10.10.10.11
    

AWS

In questa sezione sono elencate le variabili per la distribuzione dei cluster del carico di lavoro in AWS. Per informazioni sulle variabili nella colonna Variabili del file di configurazione seguente, vedere AWS in Informazioni di riferimento sulle variabili del file di configurazione.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
AWS_PROFILE
    
N/D
Queste impostazioni non vengono archiviate nell'oggetto Cluster.
AWS_REGION: us-east-1
    
- name: region
  value: us-east-1
    
AWS_SSH_KEY_NAME: aws-tkg-clusteradmin
    
- name: sshKeyName
  value: aws-tkg-clusteradmin
    
AWS_LOAD_BALANCER_SCHEME_INTERNAL: false
    
- name: loadBalancerSchemeInternal
  value: false
BASTION_HOST_ENABLED: true
    
- name: bastion
  value:
    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
- name: network
  value:
    subnets:
    - 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-0ed174ef16a2f43aaa
    
AWS_VPC_CIDR: 10.0.0.0/16
    
- name: network
  value:
    ...
    vpc:
      cidr: 10.0.0.0/16
    
AWS_VPC_ID: vpc-0ce8bdfea218
    
- name: network
  value:
    ...
    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
    
- name: network
  value:
    ...
    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
    
- name: identityRef
  value:
    name: my-aws-id
    kind: AWSClusterRoleIdentity
    
NODE_MACHINE_TYPE: m5.large
AWS_NODE_OS_DISK_SIZE_GIB: 80
    
In a multi-AZ deployment, you can also set NODE_MACHINE_TYPE_1 and NODE_MACHINE_TYPE_2
Nell'oggetto Cluster, in 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

In questa sezione sono elencate le variabili per la distribuzione di cluster del carico di lavoro in Microsoft Azure. Per informazioni sulle variabili nella colonna Variabili del file di configurazione seguente, vedere Microsoft Azure in Informazioni di riferimento sulle variabili del file di configurazione.

Nella colonna Struttura degli oggetti del cluster basato sulla classe, tutte le impostazioni della coppia name / value si trovano nella definizione dell'oggetto Cluster in spec.topology.variables.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_TENANT_ID
N/D
Queste impostazioni non sono esposte nell'oggetto Cluster.
AZURE_LOCATION: eastus2
- name: location
  value: eastus2
AZURE_RESOURCE_GROUP: my-azure-rg
- name: resourceGroup
  value: my-azure-rg
AZURE_SUBSCRIPTION_ID: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
- name: subscriptionID
  value: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
AZURE_ENVIRONMENT: AzurePublicCloud
- name: environment
  value: AzurePublicCloud
AZURE_SSH_PUBLIC_KEY_B64: "c3NoLXJzYSBB [...] vdGFsLmlv"
- name: sshPublicKey
  value: c3NoLXJzYSBB [...] vdGFsLmlv
		
AZURE_FRONTEND_PRIVATE_IP: 10.0.0.100
Impostare se AZURE_ENABLE_PRIVATE_CLUSTER è true.
- name: frontendPrivateIP
  value: 10.0.0.100
    
AZURE_CUSTOM_TAGS: "foo=bar, plan=prod"
- name: customTags
  value: "foo=bar, plan=prod"
    
AZURE_ENABLE_ACCELERATED_NETWORKING: true
- name: acceleratedNetworking
  value:
    enabled: true
    
AZURE_ENABLE_PRIVATE_CLUSTER: false
- name: privateCluster
  value:
    enabled: false
    
AZURE_VNET_CIDR: 10.0.0.0/16
AZURE_VNET_NAME: my-azure-vnet
AZURE_VNET_RESOURCE_GROUP: my-azure-vnet-rg
- name: network
  value:
    vnet:
      cidrBlocks:
      - 10.0.0.0/16
      name: my-azure-vnet
      resourceGroup: my-azure-vnet-rg
AZURE_IDENTITY_NAME: my-azure-id
AZURE_IDENTITY_NAMESPACE: default
    
- name: 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
    
- name: controlPlane
  value:
    dataDisks:
    - sizeGiB: 256
    osDisk:
      sizeGiB: 128
      storageAccountType: Premium_LRS
    outboundLB:
      enabled: true
      frontendIPCount: 1
    subnet:
      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
    
- name: worker
  value:
    dataDisks:
    - sizeGiB: 256
    osDisk:
      sizeGiB: 128
      storageAccountType: Premium_LRS
    outboundLB:
      enabled: true
      frontendIPCount: 1
      idleTimeoutInMinutes: 4
    subnet:
      cidr: 10.0.1.0/24
      name: my-azure-worker-subnet
    vmSize: Standard_D2s_v3
    

NSX Advanced Load Balancer

In questa sezione sono elencate le variabili per la configurazione di NSX Advanced Load Balancer (ALB) in TKG.

Variabili del file di configurazione Struttura degli oggetti del cluster basato sulla classe
AVI_CONTROL_PLANE_HA_PROVIDER
topology:
  variables:
    - name: aviAPIServerHAProvider
      value: true
    

Oggetto Cluster di esempio e relativi oggetti subordinati

Quando si passa un file di configurazione del cluster al flag --file di tanzu cluster create, il comando converte il file di configurazione del cluster in un file di specifiche del cluster. Di seguito è disponibile un esempio di oggetto Cluster e i relativi oggetti subordinati generati da tanzu cluster create dal file di configurazione seguente:

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

Oggetto Cluster risultante e relativi oggetti subordinati:

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

Il file delle specifiche dell'oggetto di esempio precedente include il testo segnaposto seguente:

  • TKR-NAME in tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME: Impostato da tanzu cluster create su una versione di Tanzu Kubernetes (TKr) compatibile, in base alla configurazione in uso. Ad esempio, tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.27.5---vmware.1-tkg.1. v1.27.5---vmware.1-tkg.1 è il TKr predefinito per questa versione di Tanzu Kubernetes Grid.
  • KUBERNETES-VERSION in version: KUBERNETES-VERSION: Impostato da tanzu cluster create su una versione di Kubernetes compatibile, in base alla configurazione in uso. Ad esempio, version: v1.27.5+vmware.1-tkg.1. v1.27.5+vmware.1-tkg.1 è la versione predefinita di Kubernetes per questa versione di Tanzu Kubernetes Grid.
  • CLUSTER-CLASS-VERSION in class: tkg-vsphere-default-CLUSTER-CLASS-VERSION: È la versione dell'oggetto class predefinito. Ad esempio, class: tkg-vsphere-default-v1.1.1.
check-circle-line exclamation-circle-line close-line
Scroll to top icon