クラスタ構成ファイルを作成するには、以前の展開の既存の構成ファイルを vSphere にコピーして更新します。また、空のテンプレートを使用してファイルを最初から作成することもできます。
次に示すテンプレートには、vSphere への管理クラスタの展開に関連するすべてのオプションが含まれています。このテンプレートをコピーして使用し、管理クラスタを vSphere に展開できます。
必須オプションはコメント解除されています。オプションの設定はコメントアウトされています。必要に応じて、デフォルト値が含まれています。
#! ---------------------------------------------------------------------
#! Basic cluster creation configuration
#! ---------------------------------------------------------------------
CLUSTER_NAME:
CLUSTER_PLAN: dev
INFRASTRUCTURE_PROVIDER: vsphere
# CLUSTER_API_SERVER_PORT: # For deployments without NSX Advanced Load Balancer
ENABLE_CEIP_PARTICIPATION: true
ENABLE_AUDIT_LOGGING: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# CAPBK_BOOTSTRAP_TOKEN_TTL: 30m
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
VSPHERE_SERVER:
VSPHERE_USERNAME:
VSPHERE_PASSWORD:
VSPHERE_DATACENTER:
VSPHERE_RESOURCE_POOL:
VSPHERE_DATASTORE:
VSPHERE_FOLDER:
VSPHERE_NETWORK: VM Network
# VSPHERE_CONTROL_PLANE_ENDPOINT: # Required for Kube-Vip
# VSPHERE_CONTROL_PLANE_ENDPOINT_PORT: 6443
VIP_NETWORK_INTERFACE: "eth0"
# VSPHERE_TEMPLATE:
VSPHERE_SSH_AUTHORIZED_KEY:
# VSPHERE_STORAGE_POLICY_ID: ""
VSPHERE_TLS_THUMBPRINT:
VSPHERE_INSECURE: false
DEPLOY_TKG_ON_VSPHERE7: false
ENABLE_TKGS_ON_VSPHERE7: false
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
# VSPHERE_NUM_CPUS: 2
# VSPHERE_DISK_GIB: 40
# VSPHERE_MEM_MIB: 4096
# VSPHERE_CONTROL_PLANE_NUM_CPUS: 2
# VSPHERE_CONTROL_PLANE_DISK_GIB: 40
# VSPHERE_CONTROL_PLANE_MEM_MIB: 8192
# VSPHERE_WORKER_NUM_CPUS: 2
# VSPHERE_WORKER_DISK_GIB: 40
# VSPHERE_WORKER_MEM_MIB: 4096
#! ---------------------------------------------------------------------
#! VMware NSX specific configuration for enabling NSX routable pods
#! ---------------------------------------------------------------------
# NSXT_POD_ROUTING_ENABLED: false
# NSXT_ROUTER_PATH: ""
# NSXT_USERNAME: ""
# NSXT_PASSWORD: ""
# NSXT_MANAGER_HOST: ""
# NSXT_ALLOW_UNVERIFIED_SSL: false
# NSXT_REMOTE_AUTH: false
# NSXT_VMC_ACCESS_TOKEN: ""
# NSXT_VMC_AUTH_HOST: ""
# NSXT_CLIENT_CERT_KEY_DATA: ""
# NSXT_CLIENT_CERT_DATA: ""
# NSXT_ROOT_CA_DATA: ""
# NSXT_SECRET_NAME: "cloud-provider-vsphere-nsxt-credentials"
# NSXT_SECRET_NAMESPACE: "kube-system"
#! ---------------------------------------------------------------------
#! NSX Advanced Load Balancer configuration
#! ---------------------------------------------------------------------
AVI_ENABLE: false
AVI_CONTROL_PLANE_HA_PROVIDER: false
# AVI_NAMESPACE: "tkg-system-networking"
# AVI_DISABLE_INGRESS_CLASS: true
# AVI_AKO_IMAGE_PULL_POLICY: IfNotPresent
# AVI_ADMIN_CREDENTIAL_NAME: avi-controller-credentials
# AVI_CA_NAME: avi-controller-ca
# AVI_CONTROLLER:
# AVI_USERNAME: ""
# AVI_PASSWORD: ""
# AVI_CLOUD_NAME:
# AVI_SERVICE_ENGINE_GROUP:
# AVI_NSXT_T1LR: # Required for NSX ALB deployments on NSX Cloud.
# AVI_MANAGEMENT_CLUSTER_SERVICE_ENGINE_GROUP:
# AVI_DATA_NETWORK:
# AVI_DATA_NETWORK_CIDR:
# AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME:
# AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR:
# AVI_CA_DATA_B64: ""
# AVI_LABELS: ""
# AVI_DISABLE_STATIC_ROUTE_SYNC: true
# AVI_INGRESS_DEFAULT_INGRESS_CONTROLLER: false
# AVI_INGRESS_SHARD_VS_SIZE: ""
# AVI_INGRESS_SERVICE_TYPE: ""
# AVI_INGRESS_NODE_NETWORK_LIST: ""
#! ---------------------------------------------------------------------
#! Image repository configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
#! ---------------------------------------------------------------------
#! Proxy configuration
#! ---------------------------------------------------------------------
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
#! ---------------------------------------------------------------------
#! Machine Health Check configuration
#! ---------------------------------------------------------------------
ENABLE_MHC:
ENABLE_MHC_CONTROL_PLANE: true
ENABLE_MHC_WORKER_NODE: true
MHC_UNKNOWN_STATUS_TIMEOUT: 5m
MHC_FALSE_STATUS_TIMEOUT: 12m
#! ---------------------------------------------------------------------
#! Identity management configuration
#! ---------------------------------------------------------------------
IDENTITY_MANAGEMENT_TYPE: "none"
#! Settings for IDENTITY_MANAGEMENT_TYPE: "oidc"
# CERT_DURATION: 2160h
# CERT_RENEW_BEFORE: 360h
# OIDC_IDENTITY_PROVIDER_CLIENT_ID:
# OIDC_IDENTITY_PROVIDER_CLIENT_SECRET:
# OIDC_IDENTITY_PROVIDER_GROUPS_CLAIM: groups
# OIDC_IDENTITY_PROVIDER_ISSUER_URL:
# OIDC_IDENTITY_PROVIDER_SCOPES: "email,profile,groups"
# OIDC_IDENTITY_PROVIDER_USERNAME_CLAIM: email
#! The following two variables are used to configure Pinniped JWTAuthenticator for workload clusters
# SUPERVISOR_ISSUER_URL:
# SUPERVISOR_ISSUER_CA_BUNDLE_DATA:
#! Settings for IDENTITY_MANAGEMENT_TYPE: "ldap"
# LDAP_BIND_DN:
# LDAP_BIND_PASSWORD:
# LDAP_HOST:
# LDAP_USER_SEARCH_BASE_DN:
# LDAP_USER_SEARCH_FILTER:
# LDAP_USER_SEARCH_USERNAME: userPrincipalName
# LDAP_USER_SEARCH_ID_ATTRIBUTE: DN
# LDAP_USER_SEARCH_EMAIL_ATTRIBUTE: DN
# LDAP_USER_SEARCH_NAME_ATTRIBUTE:
# LDAP_GROUP_SEARCH_BASE_DN:
# LDAP_GROUP_SEARCH_FILTER:
# LDAP_GROUP_SEARCH_USER_ATTRIBUTE: DN
# LDAP_GROUP_SEARCH_GROUP_ATTRIBUTE:
# LDAP_GROUP_SEARCH_NAME_ATTRIBUTE: cn
# LDAP_ROOT_CA_DATA_B64:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: true
# ANTREA_NODEPORTLOCAL: true
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_PROXY: true
# ANTREA_PROXY_ALL: true
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_PROXY_NODEPORT_ADDRS:
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_POLICY: true
# ANTREA_TRACEFLOW: true
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_EGRESS: true
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_FLOWEXPORTER: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "5s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_IPAM: false
# ANTREA_KUBE_APISERVER_OVERRIDE: ""
# ANTREA_MULTICAST: false
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_NETWORKPOLICY_STATS: true
# ANTREA_SERVICE_EXTERNALIP: true
# ANTREA_TRANSPORT_INTERFACE: ""
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
Tanzu Kubernetes Grid が vSphere にログインできるように情報を指定し、Tanzu Kubernetes Grid が使用できるリソースを指定します。
VSPHERE_SERVER
、VSPHERE_USERNAME
、および VSPHERE_PASSWORD
の設定を、vCenter Server インスタンスの IP アドレスまたは FQDN、およびログインに使用する認証情報で更新します。管理クラスタを展開する vSphere データセンター、リソース プール、データストア、およびフォルダへのフル パスを指定します。
VSPHERE_DATACENTER
: /<MY-DATACENTER>
VSPHERE_RESOURCE_POOL
: /<MY-DATACENTER>/host/<CLUSTER>/Resources
VSPHERE_DATASTORE
: /<MY-DATACENTER>/datastore/<MY-DATASTORE>
VSPHERE_FOLDER
: /<MY-DATACENTER>/vm/<FOLDER>.
VSPHERE_CONTROL_PLANE_ENDPOINT
を設定するか、空白のままにします。
VSPHERE_NETWORK
および VIP_NETWORK_INTERFACE
でネットワークとネットワーク インターフェイスを指定します。VSPHERE_TEMPLATE
のコメントを解除して更新し、OVA ファイルへのパスを指定します。/MY-DC/vm/MY-FOLDER-PATH/MY-IMAGE
の形式を使用します。詳細については、「Tanzu CLI を使用した TKG 2.1 ワークロード クラスタの作成と管理」の「カスタム OVA イメージを使用したクラスタの展開」を参照してください。VSPHERE_SSH_AUTHORIZED_KEY
オプションに SSH キーを指定します。SSH キーを取得する方法については、「vSphere への管理クラスタの展開の準備」を参照してください。VSPHERE_TLS_THUMBPRINT
変数に TLS サムプリントを指定するか、VSPHERE_INSECURE: true
を設定してサムプリントの検証をスキップします。VSPHERE_STORAGE_POLICY_ID
をコメント解除し、管理クラスタで使用するために vCenter Server で構成した仮想マシンのストレージ ポリシーの名前を指定します。例:
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
VSPHERE_SERVER: 10.185.12.154
VSPHERE_USERNAME: [email protected]
VSPHERE_PASSWORD: <encoded:QWRtaW4hMjM=>
VSPHERE_DATACENTER: /dc0
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/tanzu
VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-1
VSPHERE_FOLDER: /dc0/vm/tanzu
VSPHERE_NETWORK: "VM Network"
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.185.11.134
VIP_NETWORK_INTERFACE: "eth0"
VSPHERE_TEMPLATE: /dc0/vm/tanzu/my-image.ova
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAAB3[...]tyaw== [email protected]
VSPHERE_TLS_THUMBPRINT: 47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
VSPHERE_INSECURE: false
VSPHERE_STORAGE_POLICY_ID: "My storage policy"
Tanzu CLI は、構成ファイルで指定した設定に従って、管理クラスタとワークロード クラスタの個々のノードを作成します。vSphere では、すべてのノード仮想マシンに同じ事前定義済み構成を適用することも、制御プレーン ノードとワーカー ノードにそれぞれ異なる事前定義済み構成を設定することも、ノードの構成をカスタマイズすることもできます。これらの設定を使用すると、管理クラスタ ノードにそれぞれ異なる構成のノードを持つクラスタを作成できます。また、制御プレーン ノードとワーカー ノードの構成が異なるクラスタを作成することもできます。
Tanzu CLI は、クラスタ ノードに対して次の事前定義された構成を提供します。
small
:2 個の CPU、4 GB のメモリ、20 GB のディスクmedium
:2 個の CPU、8 GB のメモリ、40 GB のディスクlarge
:4 個の CPU、16 GB のメモリ、40 GB のディスクextra-large
:8 個の CPU、32 GB のメモリ、80 GB のディスクすべての制御プレーンとワーカー ノードの仮想マシンのサイズが同じクラスタを作成するには、SIZE
変数を指定します。SIZE
変数を設定すると、設定した構成を使用してすべてのノードが作成されます。
SIZE: "large"
制御プレーンとワーカー ノードの仮想マシンのサイズが異なるクラスタを作成するには、CONTROLPLANE_SIZE
および WORKER_SIZE
オプションを指定します。
CONTROLPLANE_SIZE: "medium"
WORKER_SIZE: "extra-large"
CONTROLPLANE_SIZE
オプションと WORKER_SIZE
オプションを SIZE
オプションと組み合わせることができます。たとえば、SIZE: "large"
と WORKER_SIZE: "extra-large"
を指定すると、制御プレーン ノードは large
に設定され、ワーカー ノードは extra-large
に設定されます。
SIZE: "large"
WORKER_SIZE: "extra-large"
事前定義済みの構成を使用するのではなく、ノードの構成をカスタマイズできます。
すべてのノードに同じカスタム構成を使用するには、VSPHERE_NUM_CPUS
、VSPHERE_DISK_GIB
、および VSPHERE_MEM_MIB
オプションを指定します。
VSPHERE_NUM_CPUS: 2
VSPHERE_DISK_GIB: 40
VSPHERE_MEM_MIB: 4096
制御プレーン ノードとワーカー ノードに異なるカスタム構成を定義するには、VSPHERE_CONTROL_PLANE_*
オプションと VSPHERE_WORKER_*
オプションを指定します。
VSPHERE_CONTROL_PLANE_NUM_CPUS: 2
VSPHERE_CONTROL_PLANE_DISK_GIB: 20
VSPHERE_CONTROL_PLANE_MEM_MIB: 8192
VSPHERE_WORKER_NUM_CPUS: 4
VSPHERE_WORKER_DISK_GIB: 40
VSPHERE_WORKER_MEM_MIB: 4096
これらの設定は、SIZE
、CONTROLPLANE_SIZE
、および WORKER_SIZE
オプションを使用してオーバーライドできます。
NSX Advanced Load Balancer を使用するには、まず vSphere 環境に展開する必要があります。NSX Advanced Load Balancer のインストールに関する説明を参照してください。NSX Advanced Load Balancer を展開したら、ロード バランサを使用するように vSphere 管理クラスタを構成します。
例:
AVI_ENABLE: true
AVI_CONTROL_PLANE_HA_PROVIDER: true
AVI_NAMESPACE: "tkg-system-networking"
AVI_DISABLE_INGRESS_CLASS: true
AVI_AKO_IMAGE_PULL_POLICY: IfNotPresent
AVI_ADMIN_CREDENTIAL_NAME: avi-controller-credentials
AVI_CA_NAME: avi-controller-ca
AVI_CONTROLLER: 10.185.10.217
AVI_USERNAME: "admin"
AVI_PASSWORD: "<password>"
AVI_CLOUD_NAME: "Default-Cloud"
AVI_SERVICE_ENGINE_GROUP: "Default-Group"
AVI_NSXT_T1LR:""
AVI_DATA_NETWORK: nsx-alb-dvswitch
AVI_DATA_NETWORK_CIDR: 10.185.0.0/20
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME: ""
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR: ""
AVI_CA_DATA_B64: LS0tLS1CRU[...]UtLS0tLQo=
AVI_LABELS: ""
AVI_DISABLE_STATIC_ROUTE_SYNC: true
AVI_INGRESS_DEFAULT_INGRESS_CONTROLLER: false
AVI_INGRESS_SHARD_VS_SIZE: ""
AVI_INGRESS_SERVICE_TYPE: ""
AVI_INGRESS_NODE_NETWORK_LIST: ""
デフォルトでは、管理クラスタとそれが管理するすべてのワークロード クラスタが、ロード バランサを使用します。NSX Advanced Load Balancer の変数の構成方法については、「構成ファイル変数リファレンス」の「NSX Advanced Load Balancer」を参照してください。
NSX ALB は、Tanzu Kubernetes Grid の制御プレーン エンドポイント プロバイダとして使用できます。次の表では、NSX ALB と Tanzu Kubernetes Grid のデフォルトの制御プレーン エンドポイント プロバイダである Kube-Vip の違いについて説明します。
Kube-Vip | NSX ALB | |
---|---|---|
トラフィックの送信先 | 単一の制御プレーン ノード |
複数の制御プレーン ノード |
エンドポイント仮想 IP アドレスの構成が必要 | はい |
いいえ NSX ALB 固定 IP アドレス プールから仮想 IP アドレスを割り当て |
vSphere 環境で NSX を使用している場合は、ルーティング可能な (NO_NAT
) ポッドを実装するように構成できます。
注NSX ルーティング可能なポッドは、このリリースの試験的な機能です。NSX ルーティング可能なポッドを実装する方法については、近日中にこのドキュメントに追加される予定です。
#! ---------------------------------------------------------------------
#! NSX specific configuration for enabling NSX routable pods
#! ---------------------------------------------------------------------
# NSXT_POD_ROUTING_ENABLED: false
# NSXT_ROUTER_PATH: ""
# NSXT_USERNAME: ""
# NSXT_PASSWORD: ""
# NSXT_MANAGER_HOST: ""
# NSXT_ALLOW_UNVERIFIED_SSL: false
# NSXT_REMOTE_AUTH: false
# NSXT_VMC_ACCESS_TOKEN: ""
# NSXT_VMC_AUTH_HOST: ""
# NSXT_CLIENT_CERT_KEY_DATA: ""
# NSXT_CLIENT_CERT_DATA: ""
# NSXT_ROOT_CA_DATA: ""
# NSXT_SECRET_NAME: "cloud-provider-vsphere-nsxt-credentials"
# NSXT_SECRET_NAMESPACE: "kube-system"
IPv6 をサポートする管理クラスタを IPv6 ネットワーク環境に展開するには、次の手順を実行します。
オプションの、IPv6 向けの変数およびルールの設定に関する説明に従って、環境を準備します。
管理クラスタに対して、以下の構成ファイルの変数を設定します。
TKG_IP_FAMILY
を ipv6
に設定します。VSPHERE_CONTROL_PLANE_ENDPOINT
を固定 IPv6 アドレスに設定します。CLUSTER_CIDR and SERVICE_CIDR
を設定します。デフォルトでは、それぞれ fd00:100:64::/48
および fd00:100:96::/108
になります。vSphere 7 および vSphere 8 の場合、vSphere with Tanzu は、管理クラスタとして機能する組み込みのスーパーバイザーを提供し、スタンドアローン管理クラスタよりも優れたエクスペリエンスを提供します。スーパーバイザーが存在しない場合の Tanzu Kubernetes Grid 管理クラスタの vSphere 7 または vSphere 8 への展開はサポートされていますが、推奨されるのは、可能であれば vSphere with Tanzu を有効にしてスーパーバイザーを使用することです。Azure VMware Solution はスーパーバイザー クラスタをサポートしていないため、管理クラスタを展開する必要があります。詳細については、「vSphere with Tanzu スーパーバイザーが管理クラスタである」を参照してください。
重要TKG 2.x および vSphere 8 の vSphere with Tanzu スーパーバイザーと互換性のある Tanzu CLI のバージョンは、vSphere 7 のスーパーバイザー クラスタと互換性がありません。vSphere 7 の vSphere with Tanzu スーパーバイザー クラスタで Tanzu CLI を使用するには、TKG v1.6 の Tanzu CLI バージョンを使用します。スーパーバイザーで TKG 2.x と互換性のある Tanzu CLI のバージョンを使用するには、vSphere 8 にアップグレードします。vSphere with Tanzu スーパーバイザー クラスタが存在しない場合は、スタンドアローン TKG 2.x 管理クラスタを vSphere 7 に展開できます。Tanzu CLI と VMware 製品の互換性の詳細については、Tanzu CLI のドキュメントを参照してください。
vSphere with Tanzu スーパーバイザーを管理クラスタとして使用するための推奨事項を反映するため、Tanzu CLI は次のように動作し、DEPLOY_TKG_ON_VSPHERE7
および ENABLE_TKGS_ON_VSPHERE7
構成パラメータによって制御されます。
ENABLE_TKGS_ON_VSPHERE7: false
は、管理クラスタを展開できず、終了することを通知します。ENABLE_TKGS_ON_VSPHERE7: true
では、config.yml
またはローカル環境で VSPHERE_SERVER
によって設定されたアドレスで vSphere Client が開かれます。そのため、vSphere ドキュメントの「vSphere ネットワークを使用する 1 ゾーン スーパーバイザーの有効化」の説明に従ってスーパーバイザー クラスタを構成できます。DEPLOY_TKG_ON_VSPHERE7: false
は、Tanzu Kubernetes Grid 管理クラスタの展開は可能だが、推奨されないことを通知し、インストールを終了するか、管理クラスタの展開を続行するかを尋ねるプロンプトを表示します。DEPLOY_TKG_ON_VSPHERE7: true
は、vSphere 8 の推奨事項に反して TKG 管理クラスタを vSphere 8 に展開します(Azure VMware Solution に必要)。管理クラスタ構成ファイルの更新が完了したら、「構成ファイルからの管理クラスタの展開」の手順に従って管理クラスタを作成します。