刪除使用者叢集

本頁說明如何刪除 Google Distributed Cloud 使用者叢集。刪除使用者叢集會從車隊取消註冊叢集,並刪除工作負載、節點集區、控制層節點和對應的資源,例如 VM、F5 分區和資料磁碟。

選擇刪除叢集的工具

如果您建立叢集時將 enableAdvancedCluster 設為 true (這是設定拓撲網域的必要條件),則必須使用 gkectl 刪除叢集。

否則,刪除使用者叢集的方式取決於叢集是否已註冊 GKE On-Prem API。如果符合下列任一條件,使用者叢集就會註冊 GKE On-Prem API:

  • 叢集是使用 Google Cloud 控制台、Google Cloud CLI (gcloud CLI) 或 Terraform 建立,系統會自動在 GKE On-Prem API 中註冊叢集。這些工具統稱為 GKE On-Prem API 用戶端。

  • 叢集是使用 gkectl 建立,但已向 GKE On-Prem API 註冊

如果叢集已註冊 GKE On-Prem API,請使用 GKE On-Prem API 用戶端刪除叢集。如果叢集未註冊 GKE On-Prem API,請在管理工作站使用 gkectl 刪除叢集。

如要找出特定專案中已在 GKE On-Prem API 註冊的所有使用者叢集,請執行下列指令:

gcloud container vmware clusters list \
    --project=PROJECT_ID \
    --location=-

輸出結果會與下列內容相似:

NAME                      LOCATION    VERSION             ADMIN_CLUSTER.            STATE
example-user-cluster-1a   us-west1    1.32.100-gke.106    example-admin-cluster-1   RUNNING

設定 --location=- 時,表示要列出所有區域的所有叢集。 如要縮小清單範圍,可以將 --location 設為特定區域

如果叢集列於清單中,表示已向 GKE On-Prem API 註冊。如果您不是專案擁有者,至少必須具備專案的 Identity and Access Management 角色 roles/gkeonprem.admin,才能刪除已註冊的叢集。如要瞭解這個角色包含的權限,請參閱 IAM 說明文件中的「GKE On-Prem API roles」。

如果您使用 gkectl 刪除叢集,請確認管理工作站已安裝所需版本的 gkectl。通常,您會使用與要刪除的叢集版本相同的 gkectl 版本。刪除時會強制執行下列版本規則:

  • gkectl 次要版本不得低於叢集次要版本。 舉例來說,您無法使用 gkectl 1.29 版刪除 1.30 叢集。修補程式版本不重要。舉例來說,您可以使用 gkectl 1.29.0-gke.1456 版,刪除修補程式版本較高的叢集,例如 1.29.1000-gke.94。

  • gkectl 次要版本不得高於叢集版本超過兩個次要版本。舉例來說,如果您要刪除 1.28 叢集,gkectl 版本可以是 1.29 或 1.30。但您無法使用 gkectl 1.31 版,因為該版本比叢集版本高出三個子版本。

如有需要,請參閱「下載 gkectl」一文,瞭解如何取得支援的 gkectl 版本。

刪除有狀態的工作負載

刪除叢集前,請先執行 kubectl delete,刪除有狀態工作負載、PVC 和 PV。

刪除使用者叢集

gkectl

您可以使用 gkectl 刪除未註冊 GKE On-Prem API 的叢集。如果貴機構的 Proxy 和防火牆規則允許流量連線至 gkeonprem.googleapis.comgkeonprem.mtls.googleapis.com (GKE On-Prem API 的服務名稱),gkectl 就能刪除已註冊的叢集。

在管理員工作站執行下列指令,刪除叢集:

gkectl delete cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --cluster CLUSTER_NAME 

其中

  • ADMIN_CLUSTER_KUBECONFIG 是管理員叢集 kubeconfig 檔案的路徑。
  • CLUSTER_NAME 是要刪除的使用者叢集名稱。

如果刪除作業失敗,並顯示類似以下內容的訊息:

Exit with error:
...
failed to unenroll user cluster CLUSTER_NAME
failed to create GKE On-Prem API client

這表示叢集已註冊,但 gkectl 無法連線至 GKE On-Prem API。在這種情況下,最簡單的做法是使用 GKE On-Prem API 用戶端刪除叢集。

如果刪除使用者叢集時發生錯誤,您可以執行 gkectl 並加上 --force 旗標,忽略錯誤並繼續刪除。

gkectl delete cluster \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
--cluster CLUSTER_NAME \
--force

如果您刪除了使用 Seesaw 負載平衡器的叢集,請刪除 Seesaw VM。如要執行這項操作,請在 vSphere 使用者介面中刪除 Seesaw VM。

控制台

如果使用者叢集是由 GKE On-Prem API 管理,請按照下列步驟刪除叢集:

  1. 在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。

    前往 GKE 叢集

  2. 選取使用者叢集所在的 Google Cloud 專案。

  3. 在叢集清單中,找出要刪除的叢集。 如果「類型」為「外部」,表示叢集是使用 gkectl 建立,且未註冊 GKE On-Prem API。在這種情況下,請按照「gkectl」分頁中的步驟刪除叢集。

    如果「狀態」欄中的圖示指出有問題,請按照 gcloud CLI 分頁中的步驟刪除叢集。您必須在刪除指令中加入 --ignore-errors 旗標。

  4. 按一下您要刪除的叢集名稱。

  5. 在「詳細資料」面板中,按一下視窗頂端的「刪除」

  6. 系統提示您確認時,請輸入叢集名稱,然後按一下「移除」

gcloud CLI

如果使用者叢集是由 GKE On-Prem API 管理,請在已安裝 gcloud CLI 的電腦上執行下列操作:

  1. 更新元件:

    gcloud components update
    
  2. 使用下列指令刪除叢集:

    gcloud container vmware clusters delete USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=LOCATION \
      --force \
      --allow-missing
    

    更改下列內容:

    • USER_CLUSTER_NAME:要刪除的使用者叢集名稱。

    • PROJECT_ID:叢集註冊的專案 ID。

    • LOCATION:與使用者叢集相關聯的 Google Cloud 位置。

    --force 標記可讓您刪除含有節點集區的叢集。如果沒有 --force 標記,您必須先刪除節點集區,然後再刪除叢集。

    --allow-missing 標記是標準 Google API 標記。加入這個旗標後,如果找不到叢集,指令會傳回成功。

    如果指令傳回的錯誤包含 failed connecting to the cluster's control plane 文字,表示管理員叢集、Connect Agent 或地端環境發生連線問題。

    • 如果認為連線問題是暫時性的 (例如網路問題),請稍候再重試指令。

    • 如果重試指令仍失敗,請參閱「收集 Connect Agent 記錄」,排解 Connect Agent 的問題。

    • 如果您知道管理員叢集已遭刪除,或是管理員/使用者叢集的 VM 已關閉或無法存取,請加入 --ignore-errors 旗標,然後重試指令。

如要瞭解其他標記,請參閱 gcloud CLI 參考資料

清除所用資源

如果刪除叢集時發生問題,部分 F5 或 vSphere 資源可能會保留下來。以下各節說明如何清除這些剩餘資源。

在 vSphere 中清除使用者叢集的 VM

如要確認使用者叢集的 VM 已刪除,請執行下列步驟:

  1. 在 vSphere Web Client 的左側「Navigator」選單中,按一下「Hosts and Clusters」選單。

  2. 找出管理員叢集的資源集區。這是管理員叢集設定檔中 vCenter.resourcePool 的值。

  3. 在資源集區下方,找出以使用者叢集名稱為前置字元的 VM。這些是使用者叢集的控制層節點。視使用者叢集是否具備高可用性控制層而定,這類節點會有一或三個。

  4. 找出使用者叢集的資源集區。這是使用者叢集設定檔中的 vCenter.resourcePool 值。如果使用者叢集設定檔未指定資源集區,系統會沿用管理員叢集的設定。

  5. 在資源集區下方,找出以使用者叢集節點集區名稱為前置字元的 VM。這些是使用者叢集中的工作站節點。

  6. 針對每個控制層節點和每個工作站節點執行下列操作:

    1. 在 vSphere 網路用戶端中,以滑鼠右鍵按一下 VM,然後依序選取「電源」 >「關機」

    2. 關閉 VM 電源後,在 VM 上按一下滑鼠右鍵,然後選取「從磁碟刪除」

清除使用者叢集的 F5 分區

如果使用者叢集的分割區中仍有任何項目,請執行下列步驟:

  1. 在 F5 BIG-IP 控制台的右上角,切換至要清除的使用者叢集分割區。
  2. 依序選取「Local Traffic」 >「Virtual Servers」 >「Virtual Server List」
  3. 在「虛擬伺服器」選單中,移除所有虛擬 IP。
  4. 選取「集區」,然後刪除所有集區。
  5. 選取「節點」,然後刪除所有節點。

完成後

叢集刪除後,您就可以刪除使用者叢集的 kubeconfig。