本主題說明如何使用平面組態檔或 Kubernetes 樣式的物件規格設定 Tanzu Kubernetes Grid (TKG) 工作負載叢集。有關 IaaS 特定指示,請參閱:
如何設定工作負載叢集,取決於叢集類型,如下列各節中所述。
(預設類型) 以類別為基礎的叢集會將 Kubernetes 樣式的物件規格用於 Cluster
物件。若要建立以類別為基礎的叢集,您可以將此物件規格或具有設定大寫帶底線的變數 (例如 CLUSTER_NAME
) 的平面結構的叢集組態檔,傳遞到 tanzu cluster create
。
ClusterBootstrap
及其所參考物件的規格。(舊版類型) 以計劃為基礎的叢集和 TKC 叢集會使用具有平面結構的叢集組態檔,該檔案會設定大寫帶底線的變數,例如 CLUSTER_NAME
。若要建立舊版叢集,請將此組態檔傳遞到 tanzu cluster create
。
ytt
的資訊,請參見安裝 Carvel 工具。如需有關上述叢集類型及其使用的叢集 API 提供者的詳細資訊,請參閱:
kubectl
。如需為工作負載叢集選擇哪個組態檔的相關資訊,請參閱下表。
您可以將 與 Tanzu CLI 結合使用 | 建立 類型的工作負載叢集 | 在基礎結構上。 |
---|---|---|
平面叢集組態檔 |
|
|
Kubernetes 樣式的物件規格 | 以類別為基礎的叢集 | 具有主管的 vSphere 8;具有獨立管理叢集的 vSphere 7 和 8;AWS 和 Azure |
您可以使用叢集組態檔來設定以下類型的叢集:
以類別為基礎的叢集:這包括部署到:
如果要將以類別為基礎的工作負載部署到具有主管的 vSphere 8,您必須從物件規格來部署它,如設定主管部署的以類別為基礎的叢集 (僅限 vSphere 8) 中所述。
(舊版) 以計劃為基礎的叢集和 TKC 叢集:這包括部署到:
將工作負載叢集部署到 vSphere、AWS 或 Azure 之前,請為叢集建立組態檔。當您將此檔案傳遞到 tanzu cluster create
的 --file
選項時,Tanzu CLI 會使用該檔案中定義的組態資訊,來連線到您的目標平台,並建立叢集將使用的資源。
若要建立叢集組態檔,您可以複製先前部署的現有組態檔,並進行更新。或者,也可以使用空白範本從頭開始建立檔案:
若要設定與您的基礎結構相關的組態資訊,請參閱:
如需您可以在叢集組態檔中指定的完整選項清單,請參閱組態檔變數參考。
在您部署工作負載叢集時,該叢集的大部分組態會與您用來部署該叢集的獨立管理叢集的組態相同。因此,若要為工作負載叢集建立組態檔,最簡單的做法是從獨立管理叢集組態檔的複本開始。
找出管理叢集的 YAML 組態檔:
tanzu mc create --ui
時並未指定 --file
選項,則組態檔會儲存在 ~/.config/tanzu/tkg/clusterconfigs/
中。該檔案會有一個隨機產生的名稱,例如 bm8xk9bv1v.yaml
。--file
選項,則會從您指定的檔案中取得管理叢集組態。--file
選項中指定的檔案,或是從預設位置 ~/.config/tanzu/tkg/cluster-config.yaml
,來取得管理叢集組態。建立管理叢集組態檔的複本,並使用新名稱來儲存該檔案。例如,將檔案另存為 my-aws-cluster.yaml
、my-azure-cluster.yaml
或 my-vsphere-cluster.yaml
。
更新叢集組態檔中的設定。如果您要將工作負載叢集設定為使用預設 Ubuntu 20.04 以外的作業系統,則必須設定 OS_NAME
和 OS_VERSION
值。安裝程式介面在它儲存到 ~/.config/tanzu/tkg/clusterconfigs
的管理叢集組態檔中,不會包含節點虛擬機器作業系統值。
儲存檔案。
若要為具有主管的 vSphere 8 上的 TKC 叢集準備一個叢集組態檔,請參閱設定主管部署的 TKC 叢集 (舊版)。
您可以使用 Kubernetes 樣式的物件規格檔案,將以類別為基礎的工作負載叢集部署到:
物件規格檔案具有與叢集組態檔相同的用途。當您將物件規格傳遞到 tanzu cluster create
的 --file
選項時,Tanzu CLI 會使用物件規格中定義的組態資訊來建立叢集。
與其他 Kubernetes 物件一樣,您可以建立和編輯物件規格,來設定以類別為基礎的工作負載叢集。對於叢集物件,以下是:
Cluster
物件:設定大多數叢集選項,例如叢集拓撲。您可以變更並重新套用此物件規格,以變更執行中叢集的組態。ClusterBootstrap
物件:設定僅在第一次建立叢集時所套用的非預設選項,例如容器網路介面 (CNI) 和容器儲存區介面 (CSI),以及無法在執行中叢集中重新設定的選項。如需詳細資訊,請參閱進行一次性基礎結構設定。若要建立第一個物件規格檔案,請執行以下動作:
如果要將以類別為基礎的工作負載叢集部署到不含主管的 vSphere、AWS 或 Azure,您可以使用 Tanzu CLI,將叢集組態檔轉換為物件規格檔案,而無需部署叢集:
(全域組態) 使用 Tanzu CLI 的 auto-apply-generated-clusterclass-based-configuration
功能。依預設,此功能會設定為 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
之後,您就可以使用此物件規格來部署叢集,如從物件規格來建立以類別為基礎的叢集中所述。
如果您將以類別為基礎的工作負載叢集部署到具有主管的 vSphere 8,請建立或調整 Cluster
物件規格,如設定主管部署的以類別為基礎的叢集 (僅限 vSphere 8) 中所述。vSphere 8 說明文件會提供範例 Cluster
物件規格供您使用,例如 v1beta1 範例:預設叢集。
您可以在 Cluster
物件規格中設定最常見的叢集設定,但某些叢集元件來自叢集節點所依據的 Tanzu Kubernetes 版本 (TKr)。例如,TKr 會指定叢集使用的 CNI、CSI 和 Pinniped 版本。
在建立叢集期間,這些基礎結構層級的選項會供 ClusterBootstrap
物件套用,而在正在執行的叢集中,就無法變更它們。在建立叢集之前,若要設定這些選項,則其一般程序如下:
為 ClusterBootstrap
物件及其參考的任何自訂物件 (例如 CalicoConfig
物件),建立物件規格。
為 Cluster
物件本身建立物件規格。
在所有物件規格的 metadata
中,包含要建立之叢集的名稱和命名空間,例如:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
自訂可能需要其他中繼資料,例如:註解。
將所有物件規格 (包括 Cluster
定義) 串連至單一檔案中。使用由三條虛線 (---
) 所構成的線條來分隔規格。
將物件規格傳遞至 kubectl apply
的 --file
選項,例如:
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
替代方法:對於最後兩個步驟,替代方法是對所有物件規格 (Cluster
物件除外) 執行 kubectl apply -f
,然後執行含有 Cluster
物件規格的 tanzu cluster create --file
。
有關此程序的特定範例,請參閱使用非預設 CNI 來建立叢集,該範例會將叢集的 CNI 設定為 Calico。
kubectl
和 kubeconfig
建立工作負載叢集時,Tanzu Kubernetes Grid 不會自動設定其 kubectl
內容。必須使用 kubectl config use-context
命令,來手動設定工作負載叢集的 kubectl
內容。
依預設,除非您指定 KUBECONFIG
選項將叢集的 kubeconfig
儲存至特定檔案,否則,所部署的所有工作負載叢集都將新增到共用的 .kube/config
檔案中。如果您刪除共用的 .kube/config
檔案,但仍具有管理叢集的 .kube-tkg/config
檔案,則可以使用 tanzu cluster kubeconfig get CLUSTER-NAME
命令,來復原工作負載叢集的 .kube/config
。
當 Tanzu Kubernetes Grid 作業正在執行期間,請勿變更內容或編輯 .kube-tkg/config
或 .kube/config
檔案。
針對您的基礎結構,繼續執行以下的叢集組態主題: