vSphere 的管理叢集組態

若要建立叢集組態檔,您可以將先前部署的現有組態檔複製到 vSphere,並加以更新。或者,也可以使用空白範本從頭開始建立檔案。

管理叢集組態範本

以下範本包括用來在 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: ""

一般 vSphere 組態

提供資訊以允許 Tanzu Kubernetes Grid 登入 vSphere,並指定可供 Tanzu Kubernetes Grid 使用的資源。

  • 使用 vCenter Server 執行個體的 IP 位址或 FQDN 以及用來登入的認證,來更新 VSPHERE_SERVERVSPHERE_USERNAMEVSPHERE_PASSWORD 設定。
  • 針對 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>.
  • 根據叢集控制平面 API 的 HA 提供者,設定 VSPHERE_CONTROL_PLANE_ENDPOINT 或保留為空白:
    • Kube-VIP:設定為靜態虛擬 IP 位址,或對應到 VIP 位址的完整網域名稱 (FQDN)。
    • NSX Advanced Load Balancer:除非您需要指定端點,否則請保留為空白。如果是,請使用位於 IPAM 設定檔 VIP 網路範圍內且您已手動新增至靜態 IP 集區的靜態位址,或使用對應至靜態位址的 FQDN。
  • VSPHERE_NETWORKVIP_NETWORK_INTERFACE 中指定網路和網路介面。
  • 如果要對同一 Kubernetes 版本使用多個自訂 OVA 映像,可以選擇性地取消註解並更新 VSPHERE_TEMPLATE,以指定 OVA 檔案的路徑。使用 /MY-DC/vm/MY-FOLDER-PATH/MY-IMAGE 格式。如需詳細資訊,請參閱《使用 Tanzu CLI 來建立和管理 TKG 2.2 工作負載叢集》中的使用自訂 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_SIZEWORKER_SIZE 選項。

CONTROLPLANE_SIZE: "medium"
WORKER_SIZE: "extra-large"

您可以將 CONTROLPLANE_SIZEWORKER_SIZE 選項與 SIZE 選項合併使用。例如,如果指定 SIZE: "large"WORKER_SIZE: "extra-large",則會將控制平面節點設定為 large,將工作節點設定為 extra-large

SIZE: "large"
WORKER_SIZE: "extra-large"

自訂節點大小

您可以自訂節點的組態,而不使用預先定義的組態。

若要將相同的自訂組態用於所有節點,請指定 VSPHERE_NUM_CPUSVSPHERE_DISK_GIBVSPHERE_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

您可以使用 SIZECONTROLPLANE_SIZEWORKER_SIZE 選項來覆寫這些設定。

設定 NSX Advanced Load Balancer

若要使用 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 Advanced Load Balancer 作為控制平面端點提供者

您可以在 Tanzu Kubernetes Grid 中使用 NSX ALB 作為控制平面端點提供者。下表說明 NSX ALB 與 Kube-Vip (這是 Tanzu Kubernetes Grid 中的預設控制平面端點提供者) 之間的差異。

Kube-Vip NSX ALB
將流量傳送到 單一控制平面節點
多個控制平面節點
需要設定端點 VIP

從 NSX ALB 靜態 IP 集區指派 VIP

設定 NSX 可路由 Pod

如果您的 vSphere 環境使用 NSX,則可以將它設定成實作可路由 Pod 或 NO_NAT Pod。

附註

NSX 可路由 Pod 是此版本中的一項實驗性功能。有關如何實作 NSX 可路由 Pod 的資訊很快就會新增到本說明文件中。

#! ---------------------------------------------------------------------
#! 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 網路環境,請執行以下動作:

  1. 依照 (選用) 設定 IPv6 的變數和規則中所述來準備環境。

  2. 針對管理叢集,設定組態檔中的變數,如下所示。

    • TKG_IP_FAMILY 設定為 ipv6
    • VSPHERE_CONTROL_PLANE_ENDPOINT 設定為靜態 IPv6 位址。
    • (選用) 設定 CLUSTER_CIDR and SERVICE_CIDR。預設值分別為 fd00:100:64::/48fd00:100:96::/108

vSphere with Tanzu 上的管理叢集

在 vSphere 7 和 vSphere 8 上,vSphere with Tanzu 提供一個內建主管來充當管理叢集,相較於獨立管理叢集,可提供更好的體驗。當主管不存在時,支援將 Tanzu Kubernetes Grid 管理叢集部署到 vSphere 7 或 vSphere 8,但較好的作法是啟用 vSphere with Tanzu 並使用主管 (如有可能)。Azure VMware 解決方案不支援主管叢集,因此需要部署管理叢集。如需相關資訊,請參閱 vSphere with Tanzu 主管是管理叢集

重要

與 vSphere 8 中的 TKG 2.x 和 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_VSPHERE7ENABLE_TKGS_ON_VSPHERE7 組態參數來控制的。

  • vSphere with Tanzu 已啟用:
    • ENABLE_TKGS_ON_VSPHERE7: false 會通知您無法部署管理叢集,然後結束。
    • ENABLE_TKGS_ON_VSPHERE7: true 會開啟 vSphere Client (位於 config.yml 中的 VSPHERE_SERVER 所設定的位址或本機環境),以便您可以依照 vSphere 說明文件中的使用 vSphere 網路來啟用單區域主管所述,來設定您的主管叢集。
  • 未啟用 vSphere with Tanzu:
    • DEPLOY_TKG_ON_VSPHERE7: false 會通知您可以部署 Tanzu Kubernetes Grid 管理叢集,但不建議這樣做,並提示您結束安裝或繼續部署管理叢集。
    • DEPLOY_TKG_ON_VSPHERE7: true 在 vSphere 8 上部署 TKG 管理叢集,若為 vSphere 8 不建議如此做;若為 Azure VMware 解決方案,則需要這樣做。

後續步驟

管理叢集組態檔更新完成後,請依照從組態檔來部署管理叢集中的指示來建立管理叢集。

check-circle-line exclamation-circle-line close-line
Scroll to top icon