刪除管理員叢集

本頁說明如何刪除使用 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:

  1. 列出專案中所有已註冊的管理員叢集:

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

    PROJECT_ID 替換為車隊主機專案的 ID。

    這項指令會輸出專案中已在 GKE On-Prem API 註冊的每個管理員叢集名稱,以及 Google Cloud 區域。

    設定 --location=- 時,表示要列出所有區域的所有叢集。如需縮減清單範圍,請將 --location 設為註冊叢集時指定的區域。

  2. 從 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 控制台中執行下列步驟:

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

確認 F5 分區乾淨無虞

CLI

執行下列指令,確認 VIP 是否已關閉:

ping -c 1 -W 1 F5_LOAD_BALANCER_IP; echo $?

如果 VIP 停止運作,則會傳回 1

F5 UI

如要確認 F5 使用者介面已清除分割區,請執行下列步驟:

  1. 按一下右上角的「分割區」下拉式選單。選取管理員叢集的分區。
  2. 在左側的「主要」選單中,依序選取「本機流量」 >「網路地圖」。 「當地交通網路地圖」下方不應列出任何項目。
  3. 依序前往「Local Traffic」(本機流量) >「Virtual Servers」(虛擬伺服器),選取「Nodes」(節點),然後選取「Nodes List」(節點清單)。這裡也不應列出任何項目。

如果還有項目,請從使用者介面手動刪除。

關閉管理員節點機器的電源

請先執行以下指令取得機器名稱,再關閉電源。

kubectl get machines -o wide

輸出結果會列出機器的名稱。現在您可以在 vSphere 使用者介面中找到這些資訊。

如要刪除管理員控制層節點機器,您必須關閉 vSphere 資源集區中剩餘的每個管理員 VM。

vSphere UI

請執行下列步驟:

  1. 在 vSphere 選單中,從 vSphere 資源集區選取 VM。
  2. 在 VM 選單頂端,按一下「動作」
  3. 依序選取「電源」 >「關機」。虛擬機器可能需要幾分鐘才能關機。

刪除管理員節點機器

VM 關機後,即可刪除 VM。

vSphere UI

請執行下列步驟:

  1. 在 vSphere 選單中,從 vSphere 資源集區選取 VM。
  2. 在 VM 選單頂端,按一下「動作」
  3. 按一下「從磁碟刪除」

刪除資料磁碟

刪除 VM 後,即可刪除資料磁碟。視您擁有高可用性 (HA) 或非 HA 管理員叢集而定,步驟會略有不同。

在 vSphere UI 中執行下列步驟:

Non-HA

  1. 從 vSphere 選單中,選取資料存放區中的資料磁碟,如管理員叢集設定檔的 vCenter.dataDisk 欄位所指定。
  2. 在資料儲存區選單中間,按一下「刪除」

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

請按照下列步驟刪除每個資料磁碟:

  1. 在 vSphere 選單中,從資料存放區選取資料磁碟。
  2. 在資料儲存區選單中間,按一下「刪除」

刪除 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。