このトピックでは、ワークロード クラスタ構成ファイルの変数が、クラスベースの Cluster オブジェクトとその ClusterBootstrap、および Tanzu Kubernetes Grid (TKG) 内の他の従属オブジェクト内の変数設定にどのように変換されるかについて説明します。Cluster オブジェクトとその従属オブジェクトの例については、以下の「Cluster オブジェクトとその従属オブジェクトの例」を参照してください。
構成ファイル変数とクラスベースのクラスタ変数は異なります。
構成ファイルの変数は次のとおりです。
TKG_CUSTOM_IMAGE_REPOSITORY: stg-project.vmware.com
クラスベースのクラスタ変数の設定は、Cluster または ClusterBootstrap オブジェクト仕様内のネストされた YAML 設定です。
Cluster オブジェクトの設定は次のとおりです。
ClusterClass オブジェクト セットによってクラスタの spec.topology.class 値として定義されます。controlPlane、workers または 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
|
次の表に、ポッド セキュリティ アドミッション コントローラのポッドのセキュリティ標準を構成するための変数を示します。[構成ファイルの変数 (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_AUTOSCALER が true の場合、Tanzu CLI はクラスタ オートスケーラの Deployment オブジェクトを作成し、クラスタ オートスケーラ annotations を Cluster オブジェクトに追加します。以下の [構成ファイルの変数 (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.enabled は TKG_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_CERT は TKG_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) を構成するための変数を一覧表示します。クラスベースのクラスタ変数は、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 に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (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 に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (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_1 と NODE_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 に展開するための変数を一覧表示します。以下の [構成ファイルの変数 (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_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
|
このセクションでは、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-NAME の TKR-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-VERSION の KUBERNETES-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-VERSION の CLUSTER-CLASS-VERSION:デフォルトの class のバージョンです。たとえば、class: tkg-vsphere-default-v1.1.0 などです。