依預設,當您執行 tanzu mc create
以部署管理叢集時,Tanzu Kubernetes Grid 會在本機啟動機器上建立暫存的 kind
叢集。之後,它會使用本機叢集,在其目標雲端基礎結構 (vSphere、Amazon Web Services (AWS) 或 Azure) 上佈建最終的管理叢集,且在管理叢集成功部署後刪除暫存的叢集。執行 tanzu mc delete
時,會刪除管理叢集,叫用類似的程序,亦即建立、使用,然後移除暫存的本機 kind
叢集。
在某些情況下,您可能希望在部署或刪除管理叢集後保留本機叢集。例如,檢查叢集中的物件或檢閱其記錄。為此,您可以使用 CLI 選項 --use-existing-bootstrap-cluster
或 --use-existing-cleanup-cluster
,來部署或刪除管理叢集。
若是您使用這些選項,則 Tanzu Kubernetes Grid 會跳過建立及刪除本機 kind
叢集,並改用您既有的本機叢集,或是建立新的本機叢集。
注意使用現有啟動叢集是一種進階的使用案例,適用於有經驗的 Kubernetes 使用者。若有可能,強烈建議使用 Tanzu Kubernetes Grid 提供的預設
kind
叢集來啟動您的管理叢集。
若要在建立或刪除管理叢集期間保留本機 kind
叢集,必須先有一個相容的叢集正在啟動機器上執行。請藉由識別或建立叢集來確保這一點,如以下小節中所述。
若要使用現有的本機叢集,您必須確定符合以下兩項條件:
先前未曾使用該叢集來啟動或刪除管理叢集。
該叢集是以 kind
v0.11 或更新版本建立的。
請執行 docker ps
,並將列出的 kindest:node
版本與 kind
版本說明中列出的版本產生關聯,來檢查此情況。
背景:如果啟動機器使用 2021 年 5 月 Linux 安全性修補程式之後所建置的 Linux 核心 (例如,具有 Fedora 的 Linux 5.11 和 5.12),則您的啟動叢集必須是由 kind
v0.11 版或更新版本所建立。舊版 kind
會嘗試變更已在最新 Linux 版本中設定為唯讀的檔案,從而導致失敗。安全性修補程式會向後移植到 4.9 開始的所有 LTS 核心,從而導致在發送作業系統更新時,可能出現管理叢集部署失敗,包括對於 Mac OS 上的 Docker 機器以及 Windows Subsystem for Linux 來說都是。
如果目前的本機叢集符合這兩項條件,您可以使用該叢集來建立或刪除管理叢集。否則,必須依如下所示來取代叢集:
若要建立新的本機啟動叢集,請根據啟動機器的連線能力,執行下列其中一個動作:
全線上環境:
建立叢集:
kind create cluster
網際網路受限環境:
建立 kind
叢集組態檔 kind.yml
,如下所示:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: tkg-kind
nodes:
- role: control-plane
# This option mounts the host docker registry folder into
# the control-plane node, allowing containerd to access them.
extraMounts:
- containerPath: CONTAINER-CA-PATH
hostPath: HOST-CA-PATH
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
其中:
CONTAINER-CA-PATH
是 kind
容器上 Harbor CA 憑證的路徑,例如 /etc/containerd/REGISTRY-FQDN
HOST-CA-PATH
是建有 kind
叢集的啟動虛擬機器上的 Harbor CA 憑證路徑,例如 /etc/docker/certs.d/REGISTRY-FQDN
REGISTRY-FQDN
是 Harbor 登錄的名稱。CA.crt
是 Harbor 登錄的 CA 憑證依預設,crashd
會尋找名為 tkg-kind
的叢集,因此將 kind
叢集命名為 tkg-kind
,有助於在叢集無法啟動時易於收集記錄。
使用上述組態檔來建立 kind
叢集。
kind create cluster --config kind.yml
若要部署一個具有現有啟動叢集的 Tanzu Kubernetes Grid 管理叢集,請執行以下動作:
遵循上述程序來識別或建立本機啟動叢集。
將 kubectl
的內容設定為本機啟動叢集:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
執行具有 --use-existing-bootstrap-cluster
選項的 tanzu mc create
命令,以部署管理叢集:
tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
如需有關執行 tanzu mc create
的詳細資訊,請參閱部署管理叢集。
若要刪除具有現有啟動叢集的 Tanzu Kubernetes Grid 管理叢集,請執行以下動作:
遵循上述程序來識別或建立本機啟動叢集。
將 kubectl
的內容設定為本機啟動叢集:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
執行具有 --use-existing-cleanup-cluster
選項的 tanzu mc delete
命令,以刪除管理叢集:
tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
如需有關執行 tanzu mc delete
的詳細資訊,請參閱刪除管理叢集。