構成ファイルからクラスタ クラスへの変数の変換

このトピックでは、ワークロード クラスタ構成ファイルの変数が、クラスベースの Cluster オブジェクトとその ClusterBootstrap、および Tanzu Kubernetes Grid (TKG) 内の他の従属オブジェクト内の変数設定にどのように変換されるかについて説明します。Cluster オブジェクトとその従属オブジェクトの例については、以下の「Cluster オブジェクトとその従属オブジェクトの例」を参照してください。

概要:構成ファイルとクラスタ クラスの変数

構成ファイル変数とクラスベースのクラスタ変数は異なります。

  • 構成ファイルの変数は次のとおりです。

  • クラスベースのクラスタ変数の設定は、Cluster または ClusterBootstrap オブジェクト仕様内のネストされた YAML 設定です。

    • Cluster オブジェクトの設定は次のとおりです。

      • 使用可能なクラスタ設定のほとんどは、任意に変更できます。
      • ClusterClass オブジェクト セットによってクラスタの spec.topology.class 値として定義されます。
      • controlPlaneworkers または variables ブロックを spec.topology で設定します。
      • 設定の例:

        variables:
        - name: imageRepository
          value:
            host: stg-project.vmware.com
        
    • ClusterBootstrap 設定は、コンテナ ネットワークおよびその他の低レベル インフラストラクチャに対して 1 回限り設定される設定で、既存のクラスタでは変更できません。

クラスベースのクラスタを作成する」の説明に従って、tanzu cluster create コマンドをクラスタ構成ファイルを使用して実行すると、Tanzu CLI がこの変換を実行します。

ノード構成

次の表に、制御プレーン ノードとワーカー ノードを構成するための変数と、ノード インスタンスが実行するオペレーティング システムを示します。[構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「ノード構成」を参照してください。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。この列のサンプル コードは、vSphere 上の Cluster オブジェクトに適用されます。AWS と Azure ではオブジェクト構造が異なる場合があります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
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
値は、インフラストラクチャに基づいて machine 設定に変換されます。
SIZE は、制御プレーンとワーカーの両方に適用されます。
- 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
値は、インフラストラクチャに基づいて machine 設定に変換されます。
SIZE は、制御プレーンとワーカーの両方に適用されます。
- 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
    

ポッド セキュリティ アドミッション (PSA) コントローラ

次の表に、ポッド セキュリティ アドミッション コントローラのポッドのセキュリティ標準を構成するための変数を示します。[構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「ポッド セキュリティ アドミッション コントローラのポッドのセキュリティ標準」を参照してください。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
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"] 
    

クラスタ オートスケーラ

ENABLE_AUTOSCALERtrue の場合、Tanzu CLI はクラスタ オートスケーラの Deployment オブジェクトを作成し、クラスタ オートスケーラ annotationsCluster オブジェクトに追加します。以下の [構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「クラスタ オートスケーラ」を参照してください。

構成ファイル変数 クラスベースのクラスタとオートスケーラの展開オブジェクト構造
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
    
クラスタ オートスケーラの 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
    
AUTOSCALER_MAX_SIZE_* または AUTOSCALER_MIN_SIZE_* が設定されていない場合、annotations 設定には WORKER_MACHINE_COUNT_* の値が使用されます。
Cluster オブジェクトの 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
...

プロキシおよびプライベート イメージ レジストリ

このセクションでは、たとえばインターネットが制限された展開などで、プロキシとプライベート イメージ レジストリを使用するための変数を一覧表示します。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造 メモ
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.enabledTKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY のブール値の設定を反転し、値が 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
    - [...]
[プロキシ構成](../../config-ref.md#proxies) で説明されているように、Tanzu CLI は内部的に、構成ファイルに設定されていない noProxy リストの値を追加します。
TKG_PROXY_CA_CERT: "LS0tLSBL[...]"
TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: MIIEpgIH[...]"
- name: trust
  value: 
    - name: proxy
      data: LS0tLSBL[...]
    - name: imageRepository
      data: MIIEpgIH[...]
値は base64 でエンコードされた CA 証明書です。
TKG_PROXY_CA_CERTTKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE よりも優先され、trust proxy 値が設定されている場合、trust imageRespository 値は書き込まれません。
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

共通変数

次の表に、すべてのターゲット プラットフォームに共通の変数を示します。

[構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「すべてのターゲット プラットフォームの共通変数」を参照してください。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
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

このセクションでは、クラスタの Antrea コンテナ ネットワーク インターフェイス (CNI) を構成するための変数を一覧表示します。クラスベースのクラスタ変数は、ClusterBootstrap オブジェクトの spec.cni.refName プロパティで参照される AntreaConfig オブジェクトにあります。

クラスベースのクラスタは、対応する TKG 構成ファイル変数を持たない多くの Antrea 構成オプションをサポートします。クラスベースの Cluster オブジェクトに設定可能なすべての Antrea 構成オプションについては、Antrea ドキュメントの「Feature Gates」およびその他のトピックを参照してください。

[AntreaConfig のオブジェクト構造 (AntreaConfig Object Structure)] 列で、すべての設定は、AntreaConfig オブジェクト定義の spec.antrea.config にあります。

構成ファイル変数 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

このセクションでは、ワークロード クラスタを vSphere に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「vSphere」を参照してください。[クラスベースのオブジェクト構造 (Class-based Object Structure)] 列にリストされている設定は、リストされている kind のオブジェクトにあります。

構成ファイル変数 オブジェクト構造
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.26.8+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
        テンプレート:/dc0/vm/ubuntu-2004-kube-v1.26.8+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

このセクションでは、ワークロード クラスタを AWS に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「AWS」を参照してください。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
AWS_PROFILE
    
N/A
これらの設定は、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-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
    
マルチ AZ 展開では、NODE_MACHINE_TYPE_1NODE_MACHINE_TYPE_2 を設定することもできます。
Cluster オブジェクトの 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

このセクションでは、ワークロード クラスタを Microsoft Azure に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (Configuration File Variables)] 列の変数の詳細については、「構成ファイル変数リファレンス」の「Microsoft Azure」を参照してください。

[クラスベースのクラスタ オブジェクト構造 (Class-based Cluster Object Structure)]列で、すべての name/value ペアの設定は、Cluster オブジェクト定義の spec.topology.variables にあります。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_TENANT_ID
N/A
これらの設定は、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
AZURE_ENABLE_PRIVATE_CLUSTERtrue の場合に設定します。
- 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

このセクションでは、TKG で NSX Advanced Load Balancer (ALB) を構成するための変数を一覧表示します。

構成ファイル変数 クラスベースのクラスタ オブジェクト構造
AVI_CONTROL_PLANE_HA_PROVIDER
topology: 
  variables: 
    - name: aviAPIServerHAProvider
      value: true
    

Cluster オブジェクトとその従属オブジェクトの例

クラスタ構成ファイルを tanzu cluster create--file フラグに渡すと、クラスタ構成ファイルがクラスタ仕様ファイルに変換されます。次の構成ファイルから tanzu cluster create によって生成される Cluster オブジェクトとその従属オブジェクトの例については、以下を参照してください。

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

結果の Cluster オブジェクトとその従属オブジェクト:

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

上記のオブジェクト仕様ファイルの例には、次のプレースホルダ テキストが含まれています。

  • tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAMETKR-NAME:構成に応じて、tanzu cluster create によって互換性のある Tanzu Kubernetes リリース (TKr) に設定されます。たとえば、tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.26.8---vmware.2-tkg.1 などです。v1.26.8---vmware.2-tkg.1 はこの Tanzu Kubernetes Grid リリースのデフォルトの TKr です。
  • version: KUBERNETES-VERSIONKUBERNETES-VERSION:構成に応じて、tanzu cluster create によって互換性のある Kubernetes バージョンに設定されます。たとえば、version: v1.26.8+vmware.2-tkg.1 などです。v1.26.8+vmware.2-tkg.1 はこの Tanzu Kubernetes Grid リリースのデフォルトの Kubernetes バージョンです。
  • class: tkg-vsphere-default-CLUSTER-CLASS-VERSIONCLUSTER-CLASS-VERSION:デフォルトの class のバージョンです。たとえば、class: tkg-vsphere-default-v1.1.0 などです。
check-circle-line exclamation-circle-line close-line
Scroll to top icon