排查与在 GKE On-Prem API 中注册的集群相关的问题

本页面介绍如何调查在 Google Cloud 控制台中创建 GKE on VMware 用户集群时遇到的问题。

集群基本信息下拉列表中未显示管理员集群

您必须先将管理员集群注册到舰队,然后才能在 Google Cloud 控制台中创建用户集群。如果您在 Google Cloud 控制台的集群基本信息部分上的下拉列表中没有看到管理员集群,则表示管理员集群未注册或已使用 gcloud container hub memberships register 命令注册。

检查注册状态:

  • 在 Google Cloud 控制台中,转到 Anthos > 集群页面,然后选择您尝试在其中创建用户集群的 Google Cloud 项目。

    进入 GKE Enterprise 集群页面

    • 如果列表中未显示管理员集群,请参阅注册管理员集群

    • 如果列表中显示管理员集群,则表示集群使用 gcloud container hub memberships register 命令注册。此 gcloud 命令未正确注册管理员集群。

如需解决注册问题,请执行以下操作:

  1. 删除管理员集群的舰队成员资格。

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=global
    
    • ADMIN_CLUSTER_NAME:管理员集群的名称。
    • PROJECT_ID舰队宿主项目的 ID。 该项目是您尝试在 Google Cloud 控制台中创建用户集群时选择的项目。
  2. 按照注册管理员集群中的步骤重新注册集群。

集群创建错误

本部分介绍了在 Google Cloud 控制台中创建集群期间发生的一些错误。

资源已存在错误

用户集群创建失败,并显示类似于以下内容的错误消息:

Resource 'projects/1234567890/locations/europe-west1/vmwareClusters/user-cluster1'
already exists
Request ID: 129290123128705826

此错误消息表示集群名称已被使用。

以下是解决此问题的一种方案:

  1. 删除集群

  2. 使用与现有集群不冲突的其他名称再次创建集群。

反亲和性群组错误

用户集群创建失败,并显示类似于以下内容的错误消息:

- Validation Category: VCenter
    - [FATAL] Hosts for AntiAffinityGroups: Anti-affinity groups enabled with
    available vsphere host number 1 less than 3, please add more vsphere hosts
    or disable anti-affinity groups.

VMware 分布式资源调度器 (DRS) 反亲和性规则要求 vSphere 环境中至少有 3 个物理主机。如需解决此问题,请在集群的集群详细信息页面上的功能部分中,停用反亲和性群组,如下所示:

  1. 在 Google Cloud 控制台中,进入 GKE Enterprise 集群页面。

    进入 GKE Enterprise 集群页面

  2. 选择用户集群所在的 Google Cloud 项目。

  3. 在集群列表中,点击集群的名称,然后点击详细信息面板中的查看详细信息

  4. 功能部分中,点击 修改

  5. 取消选中启用反亲和性群组,然后点击完成

  6. Google Cloud 控制台会显示集群状态:正在更改。点击显示详情,以查看资源状态条件状态消息

IP 地址有冲突错误

用户集群创建失败,并显示类似于以下内容的错误消息:

- Validation Category: Network Configuration
- [FAILURE] CIDR, VIP and static IP (availability and overlapping): user: user
  cluster control plane VIP "10.251.133.132" overlaps with
  example-cluster1/control plane VIP "10.251.133.132"

目前,您无法修改 Google Cloud 控制台的集群详情页面的负载均衡器部分中的控制平面 VIPIngress VIP 等字段。如需解决有冲突的 IP 地址,请执行以下操作:

  1. 删除集群

  2. 使用与现有集群不冲突的 IP 地址再次创建集群。

移除运行状况不佳的集群

集群可能会由于多种原因而处于运行状况不佳的状态,例如:

  • Connect Agent 或本地环境的连接问题。

  • 用户集群的管理员集群被删除,或者管理员集群和用户集群之间存在连接问题。

  • 在删除集群之前,集群的虚拟机已删除。

如果控制台无法删除集群,请使用 gcloud CLI 命令从运行状况不佳的集群中删除 Google Cloud 资源。如果您最近尚未更新 gcloud CLI,请运行以下命令来更新组件:

gcloud components update

接下来,删除 Google Cloud 资源。

用户集群

  1. 删除用户集群。

    gcloud container vmware clusters delete USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --force \
      --allow-missing \
      --ignore-errors

    替换以下内容:

    • USER_CLUSTER_NAME:要删除的用户集群的名称。

    • PROJECT_ID:集群在其中注册的项目的 ID。

    • REGION:与用户集群关联的 Google Cloud 位置。 该位置将显示在控制台中。

      您可以使用 --force 标志来删除包含节点池的集群。如果没有 --force 标志,您必须先删除节点池,然后再删除集群。

      --allow-missing 标志使该命令可在未找到集群时继续运行。

      管理员集群和用户集群无法访问时,--ignore-errors 会移除 Google Cloud 资源。之后可能会剩余某些 F5 或 vSphere 资源。如需了解如何清理剩余资源,请参阅清理资源

      此命令会删除集群(如果存在),并从 Google Cloud 中移除 GKE On-Prem API 和舰队成员资源。

  2. 确认已删除 GKE On-Prem API 资源:

    gcloud container vmware clusters list \
      --project=PROJECT_ID \
      --location=-

    设置 --location=- 时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将 --location 设置为特定区域

  3. 确认已删除舰队成员资源:

    gcloud container fleet memberships list \
      --project=PROJECT_ID

管理员集群

  1. 如果您在 GKE On-Prem API 中注册了管理员集群,请将其取消注册:

    gcloud container vmware admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing

    替换以下内容:

    • ADMIN_CLUSTER_NAME:管理员集群的名称。
    • PROJECT_ID:舰队宿主项目的 ID。
    • REGION:Google Cloud 区域。

    如果未找到舰队成员资格,则 --allow-missing 标志会取消注册集群。

    此命令会从 Google Cloud 中移除 GKE On-Prem API 资源。

  2. 从舰队中移除集群:

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

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

  3. 确认已删除 GKE On-Prem API 资源:

gcloud container fleet memberships delete ADMIN_CLUSTER_NAME --project=FLEET_HOST_PROJECT_ID

设置 --location=- 时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将 --location 设置为特定区域

  1. 确认已删除舰队成员资源:

    gcloud container fleet memberships list \
      --project=PROJECT_ID