本主題說明在將 Tanzu Kubernetes Grid (TKG) 工作負載叢集部署到具有獨立管理叢集的 vSphere 之前,如何使用平面組態檔或 Kubernetes 樣式的物件規格來設定該叢集。若要將工作負載叢集設定為部署到 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,並將預設 Kube-Vip 負載平衡器用於叢集的控制平面 API,則必須設定 VSPHERE_CONTROL_PLANE_ENDPOINT
來指定其端點。如果要使用 NSX Advanced Load Balancer (ALB),請不要設定 VSPHERE_CONTROL_PLANE_ENDPOINT
,除非您需要控制平面端點為特定位址。如果是,請使用靜態位址,且其位於 NSX ALB IPAM 設定檔的 VIP 網路範圍內,且您已手動將它新增到靜態 IP 集區。
任何兩個叢集 (包括任何管理叢集和工作負載叢集) 都不能具有相同的 VSPHERE_CONTROL_PLANE_ENDPOINT
位址。
您可以使用 Tanzu CLI,針對以類別為基礎的工作負載叢集,將叢集組態檔轉換為 Kubernetes 樣式的物件規格檔案,而無需部署叢集:
若要為您使用 tanzu cluster create
建立的每個以類別為基礎的叢集建立物件規則檔案,請確保在 Tanzu CLI 的組態中,將 auto-apply-generated-clusterclass-based-configuration
功能設為 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。