This site will be decommissioned on December 31st 2024. After that date content will be available at techdocs.broadcom.com.

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

依預設,當您執行 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