本頁說明如何刪除 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.com
和 gkeonprem.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 管理,請按照下列步驟刪除叢集:
在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
選取使用者叢集所在的 Google Cloud 專案。
在叢集清單中,找出要刪除的叢集。 如果「類型」為「外部」,表示叢集是使用
gkectl
建立,且未註冊 GKE On-Prem API。在這種情況下,請按照「gkectl
」分頁中的步驟刪除叢集。如果「狀態」欄中的圖示指出有問題,請按照 gcloud CLI 分頁中的步驟刪除叢集。您必須在刪除指令中加入
--ignore-errors
旗標。按一下您要刪除的叢集名稱。
在「詳細資料」面板中,按一下視窗頂端的「刪除」
。系統提示您確認時,請輸入叢集名稱,然後按一下「移除」。
gcloud CLI
如果使用者叢集是由 GKE On-Prem API 管理,請在已安裝 gcloud CLI 的電腦上執行下列操作:
更新元件:
gcloud components update
使用下列指令刪除叢集:
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 已刪除,請執行下列步驟:
在 vSphere Web Client 的左側「Navigator」選單中,按一下「Hosts and Clusters」選單。
找出管理員叢集的資源集區。這是管理員叢集設定檔中
vCenter.resourcePool
的值。在資源集區下方,找出以使用者叢集名稱為前置字元的 VM。這些是使用者叢集的控制層節點。視使用者叢集是否具備高可用性控制層而定,這類節點會有一或三個。
找出使用者叢集的資源集區。這是使用者叢集設定檔中的
vCenter.resourcePool
值。如果使用者叢集設定檔未指定資源集區,系統會沿用管理員叢集的設定。在資源集區下方,找出以使用者叢集節點集區名稱為前置字元的 VM。這些是使用者叢集中的工作站節點。
針對每個控制層節點和每個工作站節點執行下列操作:
在 vSphere 網路用戶端中,以滑鼠右鍵按一下 VM,然後依序選取「電源」 >「關機」。
關閉 VM 電源後,在 VM 上按一下滑鼠右鍵,然後選取「從磁碟刪除」。
清除使用者叢集的 F5 分區
如果使用者叢集的分割區中仍有任何項目,請執行下列步驟:
- 在 F5 BIG-IP 控制台的右上角,切換至要清除的使用者叢集分割區。
- 依序選取「Local Traffic」 >「Virtual Servers」 >「Virtual Server List」。
- 在「虛擬伺服器」選單中,移除所有虛擬 IP。
- 選取「集區」,然後刪除所有集區。
- 選取「節點」,然後刪除所有節點。
完成後
叢集刪除後,您就可以刪除使用者叢集的 kubeconfig。