本主題說明在將 Tanzu Kubernetes Grid (TKG) 工作負載叢集部署到 vSphere 8 with Tanzu 之前,如何使用平面組態檔或 Kubernetes 樣式的物件規格來設定該叢集。若要將工作負載叢集設定為部署到具有獨立管理叢集的 vSphere,請參閱具有獨立管理叢集組態檔的 vSphere。
如需如何使用組態檔和物件規格來設定工作負載叢集的一般資訊,請參閱組態檔和物件規格。
若要使用 vSphere 特定的工作負載叢集功能,而這些功能需要在叢集的組態檔或物件規格之外進行某些組態,請參閱 vSphere 上的叢集。
若要在將工作負載叢集部署到 vSphere with Tanzu 之前,先對其進行設定,請建立 Kubernetes 樣式的物件規格檔案 (如果您要設定的是以類別為基礎的叢集) 或叢集組態檔 (如果您要設定的是 TKC 叢集)。將上述任一檔案傳遞給 tanzu cluster create
的 -f
選項時,Tanzu CLI 會使用檔案中定義的組態資訊,來連線到 vSphere 帳戶,並建立叢集將使用的資源。
若要設定:
如需上述叢集類型的相關資訊,請參閱工作負載叢集類型。
若要設定工作負載叢集,以部署到 vSphere 8 with Tanzu,請執行以下動作:
建立或調整 Cluster
物件規格。vSphere 8 說明文件會提供範例 Cluster
物件規格,以從下列叢集來運作:
在規格檔的 topology
區塊中設定虛擬機器類型、規模和其他基本叢集組態。如需 topology
區塊的相關資訊,請參閱下面的以類別為基礎的叢集物件和拓撲結構和 ClusterClass 拓撲變數。
(選用) 若要自訂 Cluster
物件本身無法設定的屬性,例如叢集基礎結構中的一次性容器介面設定,請參閱進行一次性基礎結構設定。
可在具有 tanzukubernetescluster
類型的 Cluster
物件中設定的頂層設定如下所示。有關您可設定的 variables
,請參閱 ClusterClass 拓撲變數:
spec:
clusterNetwork
apiServerPort
services
cidrBlocks
pods
cidrBlocks
serviceDomain
controlPlaneEndpoint
host
port
topology
class
version
rolloutAfter
controlPlane
metadata
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
workers
machineDeployments
metadata
- class
name
failureDomain
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
variables
name
value
variables
name
value
這些欄位在 Cluster
物件類型規格中設定:cluster_types.go。
json:
設定指出該欄位是否為選用欄位。選用欄位具有 omitempty
設定。Topology
結構在類型規格中包含 *Workers
,因此 workers
在物件規格中的 topology
之下會縮排。- class
和 variables
選項在 Cluster
物件的叢集類別 (設定為叢集的 spec.topology.class
值) 中定義。例如,在 vSphere with Tanzu 上,這是名為 tanzukubernetescluster
的 ClusterClass
物件,其與 TanzuKubernetesCluster
物件不同,如工作負載叢集類型中所述。
可設定的 variables
包括 vmClass
、storageClass
、proxy
、nodeLabels
、extensionCert
等等,如以下 ClusterClass 拓撲變數中所列。這些變數可設定並覆寫叢集物件下方之物件中的設定,例如 KubeAdmConfig
和 Machine
物件。
tanzukubernetescluster
叢集類別是 vSphere with Tanzu 工作負載叢集上的 TKG 的預設 ClusterClass
,支援在 topology.variables
和 topology.workers.machineDeployments.variables
中設定的以下變數。特定於機器部署的變數設定 (如節點集區) 會覆寫全域設定。
這些變數可設定及覆寫叢集物件下方之物件中的設定 (例如 vmClass
和 storageClass
),以及 KubeAdmConfig
和 Machine
物件中的 proxy
設定。這可讓使用者能夠完全在 Cluster
物件規格中設定叢集,而無需編輯較低層級的物件規格:
clusterEncryptionConfigYaml
controlPlaneVolumes
defaultRegistrySecret
defaultStorageClass
extensionCert
nodePoolLabels
nodePoolTaints
nodePoolVolumes
ntp
proxy
storageClass
storageClasses
TKR_DATA
trust
user
vmClass
vSphere 8 說明文件中的以下主題說明藉由變更執行中叢集的 storageClass
和 vmClass
設定,來重新設定該叢集:
若要為 vSphere 8 上的 TKC (舊版) 工作負載叢集建立叢集組態檔,您可以將先前部署的現有組態檔複製到 vSphere with Tanzu,並進行更新。或者,也可以使用空白範本從頭開始建立檔案。
若要設定透過 vSphere with Tanzu 主管部署的工作負載叢集,請設定變數以定義用於建立叢集的儲存區類別、虛擬機器類別、服務網域、命名空間和其他必要值。下表列出一些變數,這些變數可包含在以 TKC 為基礎的叢集的組態檔中。或者,您也可以將它們設定為本機環境變數。
必要變數 | ||
---|---|---|
變數 | 值類型或範例 | 說明 |
INFRASTRUCTURE_PROVIDER |
tkg-service-vsphere |
請一律將 tkg-service-vsphere 用於 vSphere with Tanzu 上的 TanzuKubernetesCluster 物件。 |
CLUSTER_PLAN |
dev 、prod 或自訂計劃 |
設定節點計數。 |
CLUSTER_CIDR |
CIDR 範圍 | 要用於網繭的 CIDR 範圍。建議的範圍是 100.96.0.0/11 。僅當建議的範圍無法使用時,才變更此值。 |
SERVICE_CIDR |
要用於 Kubernetes 服務的 CIDR 範圍。建議的範圍是 100.64.0.0/13 。僅當建議的範圍無法使用時,才變更此值。 |
|
SERVICE_DOMAIN |
網域 | 例如,my.example.com 或 cluster.local (如果無 DNS)。如果您要為 FQDN 指派節點,則需要進行 DNS 查閱。 |
CONTROL_PLANE_VM_CLASS |
適用於 vSphere with Tanzu 的標準虛擬機器類別,例如 guaranteed-large 。請參閱 vSphere with Tanzu 說明文件中的在主管上搭配 TKG 叢集使用虛擬機器類別。 |
控制平面節點的虛擬機器類別 |
WORKER_VM_CLASS |
工作節點的虛擬機器類別 | |
選用變數 | ||
變數 | 值類型或範例 | 說明 |
CLUSTER_NAME |
字串 | 會被傳遞至 tanzu cluster create 的 CLUSTER-NAME 引數所覆寫。此名稱必須符合 RFC 952 中所述以及 RFC 1123 中所修訂的 DNS 主機名稱需求,且長度不得超過 42 個字元。 Note: 您必須為所有命名空間中的所有工作負載叢集,提供唯一的名稱。如果您指定的叢集名稱正用於其他命名空間中,則叢集部署將會失敗,並顯示錯誤。 |
NAMESPACE |
命名空間;預設值為 default 。 |
要在其中部署叢集的命名空間。若要尋找主管的命名空間,請執行 kubectl get namespaces 。 |
CNI |
antrea 或 calico ;預設值為 antrea |
用於託管工作負載 (Antrea 或 Calico) 的容器網路介面。 |
CONTROL_PLANE_MACHINE_COUNT |
整數;CONTROL_PLANE_MACHINE_COUNT 必須是奇數。對於 dev ,預設值為 1 ;對於 prod ,預設值為 3 ,如 CLUSTER_PLAN 所設定。 |
部署工作負載叢集,且其控制平面節點多於 dev 或 prod 計劃預設值。 |
WORKER_MACHINE_COUNT |
部署工作負載叢集,且其工作節點多於 dev 或 prod 計劃預設值。 |
|
STORAGE_CLASSES |
空白字串 ““ 允許叢集使用命名空間中的任何儲存區類別,或 kubectl get storageclasses 中以逗號分隔的值清單,例如 “SC-1,SC-2,SC-3” 。 |
可用來自訂節點的儲存區類別。 |
DEFAULT_STORAGE_CLASS |
空字串 ”” 表示沒有預設值或是 CLI 中的值 (如上所示)。 |
控制平面或工作節點的預設儲存區類別。 |
CONTROL_PLANE_STORAGE_CLASS |
kubectl get storageclasses 傳回的值 |
控制平面節點的預設儲存區類別。 |
WORKER_STORAGE_CLASS |
工作節點的預設儲存區類別。 | |
NODE_POOL_0_NAME |
字串 | 節點集區名稱、標籤和污點。TanzuKubernetesCluster 只能有一個節點集區。 |
NODE_POOL_0_LABELS |
JSON 字串清單,例如 [“label1”, “label2”] |
|
NODE_POOL_0_TAINTS |
索引鍵-值配對字串的 JSON 清單,例如 [{“key1”: “value1”}, {“key2”: “value2”}] |
您可以執行以下任一動作,來設定以上的變數:
將它們包含在您要傳遞給 Tanzu CLI --file
選項的叢集組態檔中。例如:
CONTROL_PLANE_VM_CLASS: guaranteed-large
在命令列上執行 export
(在 Linux 和 macOS 上) 或 SET
(在 Windows 上),將其設定為本機環境變數。例如:
export CONTROL_PLANE_VM_CLASS=guaranteed-large
附註如果您要為工作負載叢集設定唯一的 Proxy 設定,您可以將
TKG_HTTP_PROXY
、TKG_HTTPS_PROXY
和NO_PROXY
設定為環境變數,然後使用 Tanzu CLI 建立叢集。這些變數優先於 vSphere with Tanzu 中的現有 Proxy 組態。
繼續建立工作負載叢集。將工作負載叢集部署到 vSphere 之後,必須按照 設定節點 DHCP 預留和端點 DNS 記錄 (僅限 vSphere) 中所述設定其節點 DHCP 預留和端點 DNS。