本頁說明如何刪除使用 Google Distributed Cloud (僅限軟體) for VMware 建立的管理員叢集。
事前準備
刪除管理員叢集前,請先完成下列步驟:
- 刪除其使用者叢集。請參閱「刪除使用者叢集」。
- 從管理員叢集刪除使用 PodDisruptionBudgets 的所有工作負載。
- 從管理員叢集刪除所有外部物件,例如 PersistentVolume。
設定指向要刪除管理叢集 kubeconfig 的
KUBECONFIG
環境變數:export KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG
其中
ADMIN_CLUSTER_KUBECONFIG
是管理員叢集的 kubeconfig 檔案路徑。記下管理員叢集名稱:
kubectl get onpremadmincluster
取消註冊管理員叢集
如果管理員叢集已向 GKE On-Prem API 註冊,請先取消註冊,在下列情況下,管理員叢集會註冊 API:
- 您明確註冊叢集。
- 您使用 Google Cloud CLI 升級使用者叢集,這會自動註冊管理員叢集。
- 您已使用 Terraform 建立管理員叢集。
列出專案中所有已註冊的管理員叢集:
gcloud container vmware admin-clusters list \ --project=PROJECT_ID \ --location=-
將
PROJECT_ID
替換為車隊主機專案的 ID。這項指令會輸出專案中已在 GKE On-Prem API 註冊的每個管理員叢集名稱,以及 Google Cloud 區域。
設定
--location=-
時,表示要列出所有區域的所有叢集。如需縮減清單範圍,請將--location
設為註冊叢集時指定的區域。從 GKE On-Prem API 取消註冊叢集:
gcloud container vmware admin-clusters unenroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
更改下列內容:
ADMIN_CLUSTER_NAME
:管理員叢集的名稱。PROJECT_ID
:機群主機專案的 ID。REGION
: Google Cloud 區域。
這項指令會從 Google Cloud移除 GKE On-Prem API 資源。
刪除記錄與監控功能
如果叢集版本為 1.30 以上,請略過本節。由於記錄和監控自訂資源不會部署在 1.30 以上版本的叢集上,因此執行指令時不會傳回任何內容。
從 StatefulSets 部署的 Google Distributed Cloud 記錄和監控 Pod 會使用 PDB,這可能會導致節點無法正常排空。如要正確刪除管理員叢集,您必須刪除這些 Pod。
如要刪除記錄和監控 Pod,請執行下列指令:
kubectl delete monitoring --all -n kube-system kubectl delete stackdriver --all -n kube-system
刪除監控功能會清除與 StatefulSet 相關聯的 PersistentVolume (PV),但 Stackdriver 的 PersistentVolume 必須另外刪除。
您可以選擇是否要刪除 Stackdriver PV。如果選擇不刪除 PV,請在使用者叢集外部的外部位置記錄相關聯 PV 的位置和名稱。
刪除 PersistentVolumeClaim (PVC) 時,系統會一併刪除 PV。
如要找出 Stackdriver PVC,請執行下列指令:
kubectl get pvc -n kube-system
如要刪除 PVC,請執行下列指令:
kubectl delete pvc -n kube-system PVC_NAME
確認已移除記錄與監控功能
如要確認記錄和監控功能已移除,請執行下列指令:
kubectl get pvc -n kube-system kubectl get statefulsets -n kube-system
清理管理員叢集的 F5 分區
從管理員叢集刪除 gke-system
命名空間,可確保 F5 分區完成適當的清除作業,讓您將該分區用於其他管理員叢集。
如要刪除 gke-system
命名空間,請執行下列指令:
kubectl delete ns gke-system
然後刪除所有剩餘的 LoadBalancer 類型服務。如要列出所有服務,請執行下列指令:
kubectl get services --all-namespaces
針對每個 LoadBalancer 類型的 Service,執行下列指令來刪除:
kubectl delete service SERVICE_NAME -n SERVICE_NAMESPACE
接著,在 F5 BIG-IP 控制台中執行下列步驟:
- 在主控台右上角,切換至要清除的分區。
- 依序選取「Local Traffic」 >「Virtual Servers」 >「Virtual Server List」。
- 在「虛擬伺服器」選單中,移除所有虛擬 IP。
- 選取「集區」,然後刪除所有集區。
- 選取「節點」,然後刪除所有節點。
確認 F5 分區乾淨無虞
CLI
執行下列指令,確認 VIP 是否已關閉:
ping -c 1 -W 1 F5_LOAD_BALANCER_IP; echo $?
如果 VIP 停止運作,則會傳回 1
。
F5 UI
如要確認 F5 使用者介面已清除分割區,請執行下列步驟:
- 按一下右上角的「分割區」下拉式選單。選取管理員叢集的分區。
- 在左側的「主要」選單中,依序選取「本機流量」 >「網路地圖」。 「當地交通網路地圖」下方不應列出任何項目。
- 依序前往「Local Traffic」(本機流量) >「Virtual Servers」(虛擬伺服器),選取「Nodes」(節點),然後選取「Nodes List」(節點清單)。這裡也不應列出任何項目。
如果還有項目,請從使用者介面手動刪除。
關閉管理員節點機器的電源
請先執行以下指令取得機器名稱,再關閉電源。
kubectl get machines -o wide
輸出結果會列出機器的名稱。現在您可以在 vSphere 使用者介面中找到這些資訊。
如要刪除管理員控制層節點機器,您必須關閉 vSphere 資源集區中剩餘的每個管理員 VM。
vSphere UI
請執行下列步驟:
- 在 vSphere 選單中,從 vSphere 資源集區選取 VM。
- 在 VM 選單頂端,按一下「動作」。
- 依序選取「電源」 >「關機」。虛擬機器可能需要幾分鐘才能關機。
刪除管理員節點機器
VM 關機後,即可刪除 VM。
vSphere UI
請執行下列步驟:
- 在 vSphere 選單中,從 vSphere 資源集區選取 VM。
- 在 VM 選單頂端,按一下「動作」。
- 按一下「從磁碟刪除」。
刪除資料磁碟
刪除 VM 後,即可刪除資料磁碟。視您擁有高可用性 (HA) 或非 HA 管理員叢集而定,步驟會略有不同。
在 vSphere UI 中執行下列步驟:
Non-HA
- 從 vSphere 選單中,選取資料存放區中的資料磁碟,如管理員叢集設定檔的
vCenter.dataDisk
欄位所指定。 - 在資料儲存區選單中間,按一下「刪除」。
HA
3 部管理控制平面機器的資料磁碟路徑會自動在 /anthos/ADMIN_CLUSTER/default/
下方產生,例如:
/anthos/ADMIN_CLUSTER_NAME/default/MACHINE_NAME-0-data.vmdk /anthos/ADMIN_CLUSTER_NAME/default/MACHINE_NAME-1-data.vmdk /anthos/ADMIN_CLUSTER_NAME/default/MACHINE_NAME-2-data.vmdk
請按照下列步驟刪除每個資料磁碟:
- 在 vSphere 選單中,從資料存放區選取資料磁碟。
- 在資料儲存區選單中間,按一下「刪除」。
刪除 checkpoint.yaml
檔案
如果要刪除 HA 管理員叢集,請略過這個步驟,因為 HA 管理員叢集不支援檢查點檔案。
DATA_DISK_NAME-checkpoint.yaml 檔案 (其中 DATA_DISK_NAME 是資料磁碟的名稱) 位於與資料磁碟相同的資料夾中。刪除這個檔案。
取消註冊管理員叢集
建立管理員叢集時,請註冊叢集至 Google Cloud 機群。執行下列指令來刪除車隊成員,取消註冊叢集:
gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=global
這個指令會從 Google Cloud移除機群成員資格資源。
完成後
刪除管理員叢集後,請刪除其 kubeconfig。