使用現有啟動叢集來部署和刪除管理叢集

依預設,當您執行 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 來說都是。

如果目前的本機叢集符合這兩項條件,您可以使用該叢集來建立或刪除管理叢集。否則,必須依如下所示來取代叢集:

  1. 刪除叢集。

  2. 下載並安裝新版本的 kind,如 kind 說明文件中所述。

  3. 建立 kind 叢集,如以下的建立新叢集小節中所述。

建立新叢集

若要建立新的本機啟動叢集,請根據啟動機器的連線能力,執行下列其中一個動作:

  • 全線上環境

    建立叢集:

    kind create cluster
    
  • 網際網路受限環境

    1. 建立 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-PATHkind 容器上 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,有助於在叢集無法啟動時易於收集記錄。

    2. 使用上述組態檔來建立 kind 叢集。

      kind create cluster --config kind.yml
      

部署具有現有啟動叢集的管理叢集

若要部署一個具有現有啟動叢集的 Tanzu Kubernetes Grid 管理叢集,請執行以下動作:

  1. 遵循上述程序來識別或建立本機啟動叢集

  2. kubectl 的內容設定為本機啟動叢集:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. 執行具有 --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 管理叢集,請執行以下動作:

  1. 遵循上述程序來識別或建立本機啟動叢集

  2. kubectl 的內容設定為本機啟動叢集:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. 執行具有 --use-existing-cleanup-cluster 選項的 tanzu mc delete 命令,以刪除管理叢集:

    tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
    

    如需有關執行 tanzu mc delete 的詳細資訊,請參閱刪除管理叢集

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