Konfigurationsdatei für Übersetzungen von Clusterklassenvariablen

In diesem Thema wird erläutert, wie Variablen in Arbeitslastcluster-Konfigurationsdateien in Variableneinstellungen innerhalb klassenbasierter Cluster-Objekte und deren ClusterBootstrap und anderer untergeordneter Objekte in Tanzu Kubernetes Grid (TKG) übersetzt werden. Ein Beispiel für ein Cluster-Objekt und zugehörige untergeordnete Objekte finden Sie unter Beispiel für Cluster-Objekt und zugehörige untergeordnete Objekte unten.

Überblick: Konfigurationsdatei und Clusterklassenvariablen

Konfigurationsdateivariablen und klassenbasierte Clustervariablen unterscheiden sich:

  • Konfigurationsdateivariablen sind:

  • Bei klassenbasierten Clustervariableneinstellungen handelt es sich um verschachtelte YAML-Einstellungen in Cluster- oder ClusterBootstrap-Objektspezifikationen:

    • Cluster-Objekteinstellungen sind:

      • Die meisten verfügbaren Clustereinstellungen, die beliebig geändert werden können.
      • Durch das Objekt ClusterClass definiert, das als spec.topology.class-Wert des Clusters festgelegt ist.
      • In den Blöcken controlPlane, workers oder variables unter spec.topology festgelegt.
      • Beispieleinstellung:

        variables:
        - name: imageRepository
          value:
            host: stg-project.vmware.com
        
    • Bei den ClusterBootstrap-Einstellungen handelt es sich um bestimmte Einmaleinstellungen für Container-Netzwerke und andere Infrastruktur auf niedriger Ebene, die in einem vorhandenen Cluster nicht geändert werden können.

Wenn Sie den Befehl tanzu cluster create mit einer Clusterkonfigurationsdatei gemäß der Beschreibung unter Erstellen eines klassenbasierten Clusters ausführen, führt die Tanzu CLI diese Übersetzung durch.

Knoten-Konfiguration

In der folgenden Tabelle werden Variablen für die Konfiguration der Steuerungsebenen- und Worker-Knoten sowie das Betriebssystem aufgeführt, das von den Knoteninstanzen ausgeführt wird. Informationen zu den Variablen in der Spalte Konfigurationsdateivariablen finden Sie unter Knotenkonfiguration in der Variablenreferenz für Konfigurationsdatei.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables. Der Beispielcode in dieser Spalte gilt für Cluster-Objekte in vSphere. Die Objektstruktur in AWS und Azure kann abweichen.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
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
Werte werden in machine-Einstellungen auf Basis der Infrastruktur übersetzt.
SIZE gilt für die Steuerungsebene und die 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
Werte werden in machine-Einstellungen auf Basis der Infrastruktur übersetzt.
SIZE gilt für die Steuerungsebene und die 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
    

Zugangscontroller „Pod-Sicherheit“ (PSA)

In der folgenden Tabelle sind Variablen für die Konfiguration der Pod-Sicherheitsstandards für den Zugangscontroller für Pod-Sicherheit aufgeführt. Informationen zu den Variablen in der Spalte Konfigurationsdateivariablen finden Sie unter Pod-Sicherheitsstandards für Zugangscontroller für Pod-Sicherheit in der Variablenreferenz für Konfigurationsdatei.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
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"] 
    

Automatische Clusterskalierung

Wenn ENABLE_AUTOSCALER auf true festgelegt ist, erstellt die Tanzu CLI ein Deployment-Objekt für Cluster Autoscaler und fügt Cluster Autoscaler-annotations zum Cluster-Objekt hinzu. Informationen zu den Variablen in der folgenden Spalte Konfigurationsdateivariablen finden Sie unter Cluster Autoscaler in der Variablenreferenz für Konfigurationsdatei.

Konfigurationsdateivariablen Klassenbasierte Cluster- und Autoscaler-Bereitstellungsobjektstruktur
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
    
Im Cluster Autoscaler-Objekt Deployment:
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
    
Wenn AUTOSCALER_MAX_SIZE_* oder AUTOSCALER_MIN_SIZE_* nicht festgelegt ist, übernehmen die annotations-Einstellungen die Werte von WORKER_MACHINE_COUNT_*.
Im Cluster-Objekt unter 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 und private Image-Registrierung

In diesem Abschnitt werden Variablen für die Verwendung von Proxys und privaten Image-Registrierungen aufgelistet, beispielsweise in einer Bereitstellung mit Internetbeschränkung.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur Anmerkungen
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 kehrt die boolesche Einstellung für TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY um und wird nicht geschrieben, wenn der zugehörig Wert auf true festgelegt ist.
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
    - [...]
Intern hängt die Tanzu CLI Werte an die noProxy -Liste an, die in einer Konfigurationsdatei nicht festgelegt sind (siehe Beschreibung unter [Proxy-Konfiguration](../../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[...]
Werte sind Base64-codierte CA-Zertifikate.
TKG_PROXY_CA_CERT hat Vorrang vor TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE, und der Wert trust imageRespository wird nicht geschrieben, wenn der Wert trust proxy festgelegt ist.
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

Allgemeine Variablen

In der folgenden Tabelle sind Variablen aufgeführt, die allen Zielplattformen gemeinsam sind.

Informationen zu den Variablen in der Spalte Konfigurationsdateivariablen finden Sie unter Gemeinsame Variablen für alle Zielplattformen in der Variablenreferenz für Konfigurationsdatei.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
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

Antrea-CNI

In diesem Abschnitt werden Variablen für die Konfiguration der Antrea-CNI (Container Network Interface, Containernetzwerkschnittstelle) eines Clusters aufgelistet. Die klassenbasierten Clustervariablen befinden sich im AntreaConfig-Objekt, auf das im ClusterBootstrap-Objekt unter der Eigenschaft spec.cni.refName verwiesen wird.

Klassenbasierte Cluster unterstützen viele Antrea-Konfigurationsoptionen, die nicht über die entsprechenden TKG-Konfigurationsdateivariablen verfügen. Informationen zu allen Antrea-Konfigurationsoptionen, die für klassenbasierte Cluster-Objekte festgelegt werden können, finden Sie unter Feature Gates und in anderen Themen in der Antrea-Dokumentation.

In der Spalte AntreaConfig-Objektstruktur befinden sich alle Einstellungen in der AntreaConfig-Objektdefinition unter spec.antrea.config.

Konfigurationsdateivariablen AntreaConfig-Objektstruktur
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: 5 s
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 diesem Abschnitt werden Variablen für die Bereitstellung von Arbeitslastclustern für vSphere aufgelistet. Informationen zu den Variablen in der folgenden Spalte Konfigurationsdateivariablen finden Sie unter vSphere in der Variablenreferenz für Konfigurationsdatei. Einstellungen, die in der Spalte Klassenbasierte Objektstruktur aufgeführt sind, befinden sich in den Objekten der aufgelisteten kind.

Konfigurationsdateivariablen Objektstruktur
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 diesem Abschnitt werden Variablen für die Bereitstellung von Arbeitslastclustern in AWS aufgelistet. Informationen zu den Variablen in der folgenden Spalte Konfigurationsdateivariablen finden Sie unter AWS in der Variablenreferenz für Konfigurationsdatei.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
AWS_PROFILE
    
Nicht verfügbar
Diese Einstellungen werden nicht im Cluster-Objekt gespeichert.
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-0ed174ef16a2f43aa
    
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 einer Bereitstellung mit mehreren Verfügbarkeitszonen können Sie auch NODE_MACHINE_TYPE_1 und NODE_MACHINE_TYPE_2 festlegen
Im Cluster-Objekt unter 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 diesem Abschnitt werden Variablen für die Bereitstellung von Arbeitslastclustern in Microsoft Azure aufgelistet. Informationen zu den Variablen in der folgenden Spalte Konfigurationsdateivariablen finden Sie unter Microsoft Azure in der Variablenreferenz für Konfigurationsdatei.

In der Spalte Klassenbasierte Clusterobjektstruktur befinden sich alle name/value-Paareinstellungen in der Cluster-Objektdefinition unter spec.topology.variables.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_TENANT_ID
Nicht verfügbar
Diese Einstellungen werden im Cluster-Objekt nicht angezeigt.
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
Festgelegt, wenn AZURE_ENABLE_PRIVATE_CLUSTER auf true festgelegt ist.
- 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 diesem Abschnitt werden Variablen für die Konfiguration von NSX Advanced Load Balancer (ALB) in TKG aufgelistet.

Konfigurationsdateivariablen Klassenbasierte Clusterobjektstruktur
AVI_CONTROL_PLANE_HA_PROVIDER
topology:
  variables:
    - name: aviAPIServerHAProvider
      value: true
    

Beispiel für Cluster-Objekt und zugehörige untergeordnete Objekte

Wenn Sie eine Clusterkonfigurationsdatei an das Flag --file von tanzu cluster create übergeben, konvertiert der Befehl die Clusterkonfigurationsdatei in eine Clusterspezifikationsdatei. Im Folgenden finden Sie ein Beispiel für ein Cluster-Objekt und zugehörige untergeordnete Objekte, die von tanzu cluster create anhand der folgenden Konfigurationsdatei erzeugt wurden:

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

Resultierendes Cluster-Objekt und zugehörige untergeordnete Objekte:

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

Das obige Beispiel für eine Objektspezifikationsdatei enthält den folgenden Platzhaltertext:

  • TKR-NAME in tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME: Legen Sie tanzu cluster create je nach Konfiguration auf eine kompatible Tanzu Kubernetes-Version (TKr) fest. Beispiel: tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.27.5---vmware.1-tkg.1. v1.27.5---vmware.1-tkg.1 ist die Standard-TKr für diese Tanzu Kubernetes Grid-Version.
  • KUBERNETES-VERSION in version: KUBERNETES-VERSION: Legen Sie tanzu cluster create je nach Konfiguration auf eine kompatible Kubernetes-Version fest. Beispiel: version: v1.27.5+vmware.1-tkg.1. v1.27.5+vmware.1-tkg.1 ist die Kubernetes-Standardversion für diese Tanzu Kubernetes Grid-Version.
  • CLUSTER-CLASS-VERSION in class: tkg-vsphere-default-CLUSTER-CLASS-VERSION: Ist die Version der Standard-class. Beispiel: class: tkg-vsphere-default-v1.1.1.
check-circle-line exclamation-circle-line close-line
Scroll to top icon