对在 GKE On-Prem API 中注册的集群进行问题排查

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

GKE On-Prem API 是由 Google Cloud 托管的 API,可让您使用 Terraform 和标准 Google Cloud 工具管理本地集群的生命周期。GKE On-Prem API 在 Google Cloud 的基础架构中运行。Terraform、Google Cloud 控制台和 Google Cloud CLI 都是该 API 的客户端,它们使用该 API 创建、更新、升级和删除数据中心中的集群。如果您使用标准客户端创建集群,则集群会在 GKE On-Prem API 中注册,这意味着您可以使用标准客户端来管理集群的生命周期(有一些例外情况)。

如果您需要其他帮助,请与 Cloud Customer Care 联系。

集群创建错误

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

资源已存在错误

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

Resource 'projects/1234567890/[...]/user-cluster1'
already exists
Request ID: 129290123128705826

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

解决此问题的一种解决方案是删除并重新创建集群:

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

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 bare-metal 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 资源。

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

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

    gcloud container bare-metal clusters list \
      --project=PROJECT_ID \
      --location=-

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

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

    gcloud container fleet memberships list \
      --project=PROJECT_ID

管理员集群

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

    gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing --ignore-errors 
    

    请替换以下内容:

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

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

    管理员集群和用户集群无法访问时,--ignore-errors 标志会移除 Google Cloud 资源。

    此命令会从 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 设置为特定区域

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

    gcloud container fleet memberships list \
      --project=PROJECT_ID

后续步骤

如果您需要其他帮助,请与 Cloud Customer Care 联系。