删除用户集群

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

概览

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

删除用户集群

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

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

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

如果您使用的是 Seesaw 捆绑式负载平衡器,请删除负载平衡器

已知问题

在版本 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 共享集群信息。请参阅诊断集群问题

默认日志记录行为

对于 gkectlgkeadm,使用默认日志记录设置便已足够:

  • 默认情况下,日志条目的保存方式如下:

    • 对于 gkectl,默认日志文件为 /home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log,该文件与运行 gkectl 的本地目录中的 logs/gkectl-$(date).log 文件进行符号链接。
    • 对于 gkeadm,默认日志文件是运行 gkeadm 的本地目录中的 logs/gkeadm-$(date).log
  • 所有日志条目都会保存在日志文件中,即使它们不输出到终端(当 --alsologtostderrfalse 时)也是如此。
  • -v5 详细程度(默认)涵盖支持团队所需的所有日志条目。
  • 日志文件还包含已执行的命令和失败消息。

我们建议您在需要帮助时将日志文件发送给支持团队。

为日志文件指定非默认位置

要为 gkectl 日志文件指定非默认位置,请使用 --log_file 标志。您指定的日志文件不会与本地目录进行符号链接。

要为 gkeadm 日志文件指定非默认位置,请使用 --log_file 标志。

在管理员集群中查找 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