本页面介绍如何删除 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 中清理用户集群的虚拟机
要验证用户集群的虚拟机是否已删除,请执行以下步骤:
- 从 vSphere Web Client 左侧的 Navigator 菜单中,点击 Hosts and Clusters 菜单。
- 找到您的资源池。
- 验证是否有虚拟机以您的用户集群名称作为前缀。
如果有剩余的用户集群虚拟机,请对每个虚拟机执行以下步骤:
- 在 vSphere Web Client 中,右键点击用户集群虚拟机,然后选择 Power > Power Off。
- 关停虚拟机后,右键点击虚拟机,然后选择 Delete from Disk。
清理用户集群的 F5 分区
如果用户集群的分区中还有剩余条目,请执行以下步骤:
- 在 F5 BIG-IP 控制台的右上角,切换到您要清理的用户集群分区。
- 依次选择 Local Traffic > Virtual Servers > Virtual Server List。
- 在 Virtual Servers 菜单中,移除所有虚拟 IP 地址。
- 选择 Pools,然后删除所有池。
- 选择 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 控制器的日志来尝试进行调试:
在
kube-system
命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
打开 pod 的日志,其中 [POD_NAME] 是 pod 的名称。您可以选择使用
grep
或类似工具来搜索错误:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager