本页介绍了如何删除使用 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 升级用户集群时,管理员集群会注册到 API 中。
列出项目中的所有已注册管理员集群:
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 资源。
删除日志记录和监控功能
Google Distributed Cloud 的日志记录和监控 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 控制台中执行以下操作:
- 在控制台的右上角,切换到要清理的分区。
- 依次选择 Local Traffic > Virtual Servers > Virtual Server List。
- 在 Virtual Servers 菜单中,移除所有虚拟 IP 地址。
- 选择 Pools,然后删除所有池。
- 选择 Nodes,然后删除所有节点。
验证 F5 分区是否干净
CLI
通过运行以下命令来检查 VIP 地址是否已停用:
ping -c 1 -W 1 F5_LOAD_BALANCER_IP; echo $?
如果 VIP 地址已停用,该命令将返回 1
。
F5 界面
要检查是否已从 F5 界面中清理分区,请执行以下步骤:
- 点击右上角的 Partition 下拉菜单。选择您的管理员集群的分区。
- 从左侧 Main 菜单中,选择 Local Traffic > Network Map。Local Traffic Network Map 下方不应列出任何内容。
- 从 Local Traffic > Virtual Servers 中,选择 Nodes,然后选择 Nodes List。此处也不应列出任何内容。
如果还有任何条目,请从界面中手动删除。
关闭管理员节点机器
首先,运行此命令以获取机器的名称,然后再关闭机器。
kubectl get machines -o wide
输出会列出机器的名称。现在,您可以在 vSphere 界面中找到它们。
要删除管理员控制平面节点机器,您需要关停 vSphere 资源池中剩余的所有管理员虚拟机。
vSphere 界面
执行以下步骤:
- 从 vSphere 菜单中,选择 vSphere 资源池中的虚拟机。
- 在“VM”菜单顶部,点击 Actions。
- 依次选择 Power > Power Off。虚拟机可能需要几分钟时间才能关停。
删除管理员节点机器
关停虚拟机后,您可以删除虚拟机。
vSphere 界面
执行以下步骤:
- 从 vSphere 菜单中,选择 vSphere 资源池中的虚拟机。
- 在“VM”菜单顶部,点击 Actions。
- 点击 Delete from Disk。
删除数据磁盘
删除虚拟机后,您可以删除数据磁盘。根据您是高可用性 (HA) 管理员集群还是非高可用性管理员集群,这些步骤会略有不同。
在 vSphere 界面中执行以下步骤:
非 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
文件
如果要删除高可用性管理员集群,请跳过此步骤,因为高可用性管理员集群不支持检查点文件。
DATA_DISK_NAME-checkpoint.yaml 文件(其中 DATA_DISK_NAME 是数据磁盘的名称)与数据磁盘位于同一文件夹中。删除此文件。
取消注册管理员集群
创建管理员集群时,您可以将集群register到 Google Cloud 舰队。运行以下命令以删除舰队成员,这会取消注册集群:
gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=global
此命令会从 Google Cloud 中移除队列成员资格资源。
完成操作后
删除完管理员集群后,删除其 kubeconfig。