删除用户集群

本页面介绍如何删除 GKE On-Prem 用户集群。

概览

GKE On-Prem 支持通过 gkectl 删除用户集群。如果集群运行状况不佳(例如,如果控制层面无法访问或集群无法引导),请参考删除运行状况不佳的用户集群

删除用户集群

要删除用户集群,请运行以下命令:

gkectl delete cluster \
--kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \
--cluster [CLUSTER_NAME]

其中,[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件,[CLUSTER_NAME] 是您要删除的用户集群的名称。

已知问题

在版本 1.1.2 中,如果您使用的是 vSAN 数据存储区,有一个已知问题会导致出现此错误:

Error deleting machine object xxx; Failed to delete machine xxx: failed
  to ensure disks detached: failed to convert disk path "" to UUID path:
  failed to convert full path "ds:///vmfs/volumes/vsan:52ed29ed1c0ccdf6-0be2c78e210559c7/":
  ServerFaultCode: A general system error occurred: Invalid fault

请参阅版本说明中的解决方法

删除运行状况不佳的用户集群

如果集群运行状况不佳,您可以传入 --force 删除用户集群。如果用户集群的控制层面无法访问、集群未能引导,或者 gkectl delete cluster 无法删除集群,该集群可能运行状况不佳。

要强制删除集群,请运行以下命令:

gkectl delete cluster \
--kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \
--cluster [CLUSTER_NAME] \
--force

其中,[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件,[CLUSTER_NAME] 是您要删除的用户集群的名称。

清理外部资源

在强制删除后,F5 或 vSphere 中可能会有一些剩余资源。以下部分介绍如何清理这些剩余资源。

在 vSphere 中清理用户集群的虚拟机

要验证用户集群的虚拟机是否已删除,请执行以下步骤:

  1. 从 vSphere Web Client 左侧的 Navigator 菜单中,点击 Hosts and Clusters 菜单。
  2. 找到您的资源池。
  3. 验证是否有虚拟机以您的用户集群名称作为前缀。

如果有剩余的用户集群虚拟机,请对每个虚拟机执行以下步骤:

  1. 在 vSphere Web Client 中,右键点击用户集群虚拟机,然后选择 Power > Power Off
  2. 关停虚拟机后,右键点击虚拟机,然后选择 Delete from Disk

清理用户集群的 F5 分区

如果用户集群的分区中还有剩余条目,请执行以下步骤:

  1. 在 F5 BIG-IP 控制台的右上角,切换到您要清理的用户集群分区。
  2. 依次选择 Local Traffic > Virtual Servers > Virtual Server List
  3. Virtual Servers 菜单中,移除所有虚拟 IP 地址。
  4. 选择 Pools,然后删除所有池。
  5. 选择 Nodes,然后删除所有节点。

完成操作后

gkectl 删除完用户集群后,您可以删除用户集群的 kubeconfig。

问题排查

如需了解详情,请参阅问题排查

使用 gkectl 诊断集群问题

使用 gkectl diagnose 命令识别集群问题并与 Google 共享集群信息。请参阅诊断集群问题

以 verbose 模式运行 gkectl 命令

-v5

gkectl 错误记录到 stderr

--alsologtostderr

在管理员工作站中查找 gkectl 日志

即使未传入其调试标志,您也可以在以下管理员工作站目录中查看 gkectl 日志:

/home/ubuntu/.config/gke-on-prem/logs

在管理员集群中查找 Cluster API 日志

如果虚拟机在管理员控制层面启动后无法启动,您可以通过在管理员集群中检查 Cluster API 控制器的日志来尝试进行调试:

  1. kube-system 命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. 打开 pod 的日志,其中 [POD_NAME] 是 pod 的名称。您可以选择使用 grep 或类似工具来搜索错误:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager