このトピックでは、スタンドアローン管理クラスタを使用して vSphere にデプロイする前に、フラット構成ファイルまたは Kubernetes スタイルのオブジェクト仕様を使用して、Tanzu Kubernetes Grid (TKG) のワークロード クラスタを構成する方法について説明します。ワークロード クラスタを vSphere with Tanzu に展開するように構成するには、「スーパーバイザー クラスタを使用する vSphere の構成ファイル」を参照してください。
構成ファイルとオブジェクト仕様を使用してワークロード クラスタを構成する方法の一般的な情報については、「構成ファイルとオブジェクト仕様」を参照してください。
クラスタの構成ファイルまたはオブジェクト仕様に含まれない構成を必要とする vSphere 固有のワークロード クラスタ機能を使用するには、「vSphere 上のクラスタ」を参照してください。
ワークロード クラスタを vSphere に展開する前に構成するには、クラスタ構成ファイルまたは Kubernetes スタイルのオブジェクト仕様ファイルを作成します。これらのファイルのいずれかを tanzu cluster create
の -f
オプションに渡すと、Tanzu CLI はファイルで定義されている構成情報を使用して vSphere アカウントに接続し、クラスタが使用するリソースを作成します。たとえば、制御プレーン ノードとワーカー ノード仮想マシンの標準サイズを指定したり、制御プレーン ノードとワーカー ノードの CPU、メモリ、ディスク サイズを明示的に構成したりすることができます。カスタム イメージ テンプレートを使用する場合は、ノード仮想マシンの作成に使用するテンプレートを特定できます。
ワークロード クラスタを vSphere に展開するときに指定する必要があるオプションの完全なリストについては、「構成ファイル変数リファレンス」を参照してください。
クラスタ構成ファイルを作成するには、以下の「ワークロード クラスタ テンプレート」のテンプレートを使用できます。構成ファイルを作成したら、「ワークロード クラスタの作成」に進みます。
次に示すテンプレートには、vSphere へのワークロード クラスタの展開に関連するすべてのオプションが含まれています。このテンプレートをコピーして更新し、ワークロード クラスタを vSphere に展開できます。
必須オプションはコメント解除されています。オプションの設定はコメントアウトされています。必要に応じて、デフォルト値が含まれています。
テンプレートの下のセクションで説明されているオプションを除き、vSphere に固有のワークロード クラスタの変数を構成する方法は、管理クラスタとワークロード クラスタの両方で同じです。変数の構成方法の詳細については、「構成ファイルからの管理クラスタの展開」と「vSphere の管理クラスタ構成」を参照してください。
#! ---------------------------------------------------------------------
#! Basic cluster creation configuration
#! ---------------------------------------------------------------------
# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT: # For deployments without NSX Advanced Load Balancer
CNI: antrea
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# 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
# CONTROL_PLANE_MACHINE_COUNT:
# WORKER_MACHINE_COUNT:
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
#VSPHERE_CLONE_MODE: "fullClone"
VSPHERE_NETWORK: VM Network
# VSPHERE_TEMPLATE:
# VSPHERE_TEMPLATE_MOID:
# IS_WINDOWS_WORKLOAD_CLUSTER: false
# VIP_NETWORK_INTERFACE: "eth0"
VSPHERE_SSH_AUTHORIZED_KEY:
VSPHERE_USERNAME:
VSPHERE_PASSWORD:
# VSPHERE_REGION:
# VSPHERE_ZONE:
# VSPHERE_AZ_0:
# VSPHERE_AZ_1:
# VSPHERE_AZ_2:
VSPHERE_SERVER:
VSPHERE_DATACENTER:
VSPHERE_RESOURCE_POOL:
VSPHERE_DATASTORE:
VSPHERE_FOLDER:
# VSPHERE_STORAGE_POLICY_ID
# VSPHERE_WORKER_PCI_DEVICES:
# VSPHERE_CONTROL_PLANE_PCI_DEVICES:
# VSPHERE_IGNORE_PCI_DEVICES_ALLOW_LIST:
# VSPHERE_CONTROL_PLANE_CUSTOM_VMX_KEYS:
# VSPHERE_WORKER_CUSTOM_VMX_KEYS:
# WORKER_ROLLOUT_STRATEGY: "RollingUpdate"
# VSPHERE_CONTROL_PLANE_HARDWARE_VERSION:
# VSPHERE_WORKER_HARDWARE_VERSION:
VSPHERE_TLS_THUMBPRINT:
VSPHERE_INSECURE: false
# VSPHERE_CONTROL_PLANE_ENDPOINT: # Required for Kube-Vip
# VSPHERE_CONTROL_PLANE_ENDPOINT_PORT: 6443
# VSPHERE_ADDITIONAL_FQDN:
AVI_CONTROL_PLANE_HA_PROVIDER: false
#! ---------------------------------------------------------------------
#! 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"
#! ---------------------------------------------------------------------
#! Common configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: false
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
# TKG_PROXY_CA_CERT: ""
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
#! ---------------------------------------------------------------------
#! Autoscaler configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
# AUTOSCALER_MAX_NODES_TOTAL: "0"
# 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_MIN_SIZE_0:
# AUTOSCALER_MAX_SIZE_0:
# AUTOSCALER_MIN_SIZE_1:
# AUTOSCALER_MAX_SIZE_1:
# AUTOSCALER_MIN_SIZE_2:
# AUTOSCALER_MAX_SIZE_2:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: false
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_PROXY_ALL: false
# ANTREA_PROXY_NODEPORT_ADDRS: ""
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "30s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_KUBE_APISERVER_OVERRIDE:
# ANTREA_TRANSPORT_INTERFACE:
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_MULTICAST_IGMPQUERY_INTERVAL: "125s"
# ANTREA_TUNNEL_TYPE: geneve
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_ENABLE_BRIDGING_MODE: false
# ANTREA_DISABLE_TXCHECKSUM_OFFLOAD: false
# ANTREA_DNS_SERVER_OVERRIDE: ""
# ANTREA_MULTICLUSTER_ENABLE: false
# ANTREA_MULTICLUSTER_NAMESPACE: ""
クラスタを vSphere に展開し、クラスタの制御プレーン API に対してデフォルトの Kube-Vip ロード バランサを使用する場合は、VSPHERE_CONTROL_PLANE_ENDPOINT
を設定してエンドポイントを指定する必要があります。NSX Advanced Load Balancer (ALB) を使用している場合は、制御プレーン エンドポイントを特定のアドレスにする必要がない限り、VSPHERE_CONTROL_PLANE_ENDPOINT
を設定しないでください。その場合は、固定 IP アドレス プールに手動で追加した NSX ALB IP アドレス管理プロファイルの仮想 IP アドレス ネットワーク範囲内の固定アドレスを使用します。
管理クラスタとワークロード クラスタを含む 2 つのクラスタに、同じ VSPHERE_CONTROL_PLANE_ENDPOINT
アドレスを設定することはできません。
Tanzu CLI を使用すると、クラスタを展開せずに、クラスタ構成ファイルをクラスベースのワークロード クラスタの Kubernetes スタイルのオブジェクト仕様ファイルに変換できます。
tanzu cluster create
を使用して作成するクラスベースのクラスタごとにオブジェクト仕様ファイルを作成するには、auto-apply-generated-clusterclass-based-configuration
機能が Tanzu CLI の構成で false
に設定されていることを確認します。この機能は、デフォルトで false
に設定されています。auto-apply-generated-clusterclass-based-configuration
が false
に設定されている場合に、--file
フラグを指定して tanzu cluster create
を実行すると、クラスタ構成ファイルがオブジェクト仕様ファイルに変換され、クラスタを作成することなくコマンドが終了します。構成を確認したら、Tanzu CLI によって生成されたオブジェクト仕様ファイルを使用して tanzu cluster create
を再実行します。デフォルトの構成を更新した場合、false
に設定を戻すには、次のコマンドを実行します。
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
単一クラスタのオブジェクト仕様ファイルを生成するには、--dry-run
オプションを tanzu cluster create
に渡して、出力をファイルに保存します。クラスタを作成する場合に使用するのと同じオプションと構成 --file
を使用します。例:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
このオブジェクト仕様を使用して、「オブジェクト仕様からのクラスベースのクラスタの作成」の説明に従ってクラスタを展開できます。
オブジェクト仕様ファイルの例については、「Cluster
オブジェクトとその従属オブジェクトの例」を参照してください。
「ワークロード クラスタの作成」に進みます。ワークロード クラスタを vSphere に展開した後、「ノードの DHCP 予約とエンドポイント DNS レコードの構成(vSphere のみ)」の説明に従って、ノードの DHCP 予約とエンドポイント DNS を構成する必要があります。