若要建立叢集組態檔,您可以將先前部署的現有組態檔複製到 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
設定。針對 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。
您可以在 Tanzu Kubernetes Grid 中使用 NSX ALB 作為控制平面端點提供者。下表說明 NSX ALB 與 Kube-Vip (這是 Tanzu Kubernetes Grid 中的預設控制平面端點提供者) 之間的差異。
Kube-Vip | NSX ALB | |
---|---|---|
將流量傳送到 | 單一控制平面節點 |
多個控制平面節點 |
需要設定端點 VIP | 是 |
否 從 NSX ALB 靜態 IP 集區指派 VIP |
如果您的 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 的變數和規則中所述來準備環境。
針對管理叢集,設定組態檔中的變數,如下所示。
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 解決方案不支援主管叢集,因此需要部署管理叢集。如需相關資訊,請參閱 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_VSPHERE7
和 ENABLE_TKGS_ON_VSPHERE7
組態參數來控制的。
ENABLE_TKGS_ON_VSPHERE7: false
會通知您無法部署管理叢集,然後結束。ENABLE_TKGS_ON_VSPHERE7: true
會開啟 vSphere Client (位於 config.yml
中的 VSPHERE_SERVER
所設定的位址或本機環境),以便您可以依照 vSphere 說明文件中的使用 vSphere 網路來啟用單區域主管所述,來設定您的主管叢集。DEPLOY_TKG_ON_VSPHERE7: false
會通知您可以部署 Tanzu Kubernetes Grid 管理叢集,但不建議這樣做,並提示您結束安裝或繼續部署管理叢集。DEPLOY_TKG_ON_VSPHERE7: true
在 vSphere 8 上部署 TKG 管理叢集,若為 vSphere 8 不建議如此做;若為 Azure VMware 解決方案,則需要這樣做。管理叢集組態檔更新完成後,請依照從組態檔來部署管理叢集中的指示來建立管理叢集。