删除管理员集群

本页面介绍如何删除 GKE on VMware 管理员集群。

准备工作

在删除管理员集群之前,请完成以下步骤:

  • 删除其用户集群。请参阅删除用户集群
  • 从管理员集群中删除使用 PodDisruptionBudgets (PDB) 的任何工作负载。
  • 从管理员集群中删除所有外部对象,例如 PersistentVolume。
  • 设置一个 KUBECONFIG 环境变量,使其指向您要删除的管理员集群的 kubeconfig:

    export KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG
    

    其中,ADMIN_CLUSTER_KUBECONFIG 是管理员集群的 kubeconfig 文件的路径。

取消注册管理员集群

如果管理员集群已在 GKE On-Prem API 中注册,您需要先从 API 中取消注册该集群。当您明确注册集群或使用 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 资源。

取消注册管理员集群

创建管理员集群时,您可以将集群register到 Google Cloud 舰队。运行以下命令以删除舰队成员,这会取消注册集群:

gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=global

此命令会从 Google Cloud 中移除队列成员资格资源。

删除日志记录和监控功能

GKE on VMware 的日志记录和监控 Pod(从 StatefulSet 部署)使用 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 的位置和名称。

通过删除永久性卷声明 (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 类型的所有剩余 Service。要列出所有 Service,请运行以下命令:

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. Virtual Servers 菜单中,移除所有虚拟 IP 地址。
  4. 选择 Pools,然后删除所有池。
  5. 选择 Nodes,然后删除所有节点。

验证 F5 分区是否干净

CLI

通过运行以下命令来检查 VIP 地址是否已停用:

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

如果 VIP 地址已停用,该命令将返回 1

F5 界面

要检查是否已从 F5 界面中清理分区,请执行以下步骤:

  1. 点击右上角的 Partition 下拉菜单。选择您的管理员集群的分区。
  2. 从左侧 Main 菜单中,选择 Local Traffic > Network Map。Local Traffic Network Map 下方不应列出任何内容。
  3. Local Traffic > Virtual Servers 中,选择 Nodes,然后选择 Nodes List。此处也不应列出任何内容。

如果还有任何条目,请从界面中手动删除。

关闭管理员节点机器

首先,运行此命令以获取机器的名称,然后再关闭机器。

kubectl get machines -o wide

输出会列出机器的名称。现在,您可以在 vSphere 界面中找到它们。

要删除管理员控制平面节点机器,您需要关停 vSphere 资源池中剩余的所有管理员虚拟机。

vSphere 界面

执行以下步骤:

  1. 从 vSphere 菜单中,选择 vSphere 资源池中的虚拟机。
  2. 在“VM”菜单顶部,点击 Actions
  3. 依次选择 Power > Power Off。虚拟机可能需要几分钟时间才能关停。

删除管理员节点机器

关停虚拟机后,您可以删除虚拟机。

vSphere 界面

执行以下步骤:

  1. 从 vSphere 菜单中,选择 vSphere 资源池中的虚拟机。
  2. 在“VM”菜单顶部,点击 Actions
  3. 点击 Delete from Disk

删除数据磁盘

删除虚拟机后,您可以删除数据磁盘。根据您是高可用性 (HA) 管理员集群还是非高可用性管理员集群,这些步骤会略有不同。

在 vSphere 界面中执行以下步骤:

非 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 文件

如果要删除高可用性管理员集群,请跳过此步骤,因为高可用性管理员集群不支持检查点文件。

DATA_DISK_NAME‑checkpoint.yaml 文件(其中 DATA_DISK_NAME 是数据磁盘的名称)与数据磁盘位于同一文件夹中。删除此文件。

完成操作后

删除完管理员集群后,删除其 kubeconfig。