本页面介绍了如何调查在 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 控制台中创建用户集群。如果您在 Google Cloud 控制台的集群基本信息部分上的下拉列表中没有看到管理员集群,则表示管理员集群未注册或已使用 gcloud container fleet memberships register
命令注册。 此 gcloud
命令未正确注册管理员集群。
检查注册状态:
在 Google Cloud 控制台中,前往 Kubernetes Engine > 集群页面,然后选择您尝试在其中创建用户集群的同一个 Google Cloud 项目。
如果列表中未显示管理员集群,请参阅注册管理员集群。
如果列表中显示管理员集群,此行为表明该集群是使用
gcloud container hub memberships register
命令注册的。此gcloud
命令未正确注册管理员集群。
如需解决注册问题,请完成以下步骤:
删除管理员集群的舰队成员资格。
gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=global
ADMIN_CLUSTER_NAME
:管理员集群的名称。PROJECT_ID
:舰队宿主项目的 ID。 该项目是您尝试在 Google Cloud 控制台中创建用户集群时选择的项目。
按照注册管理员集群中的步骤重新注册集群。
集群创建错误
本部分介绍了在 Google Cloud 控制台中创建集群期间发生的一些错误。
资源已存在错误
用户集群创建失败,并显示类似于以下内容的错误消息:
Resource 'projects/1234567890/[...]/user-cluster1'
already exists
Request ID: 129290123128705826
此错误消息表示集群名称已被使用。
解决此问题的一种解决方案是删除并重新创建集群:
- 删除集群。
- 使用与现有集群不冲突的其他名称再次创建集群。
反亲和性群组错误
用户集群创建失败,并显示类似于以下内容的错误消息:
- 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 个物理主机。如需解决此问题,请在集群的集群详细信息页面上的功能部分中,停用反亲和性群组,如下所示:
在 Google Cloud 控制台中,前往“GKE 集群”页面。
选择用户集群所在的 Google Cloud 项目。
在集群列表中,点击集群的名称,然后点击详细信息面板中的查看详细信息。
在功能部分中,点击
修改。取消选中启用反亲和性群组,然后点击完成。
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 控制台的集群详情页面的负载均衡器部分中修改控制平面 VIP 和 Ingress VIP 等字段。如需修复有冲突的 IP 地址,请删除并重新创建集群:
- 删除集群。
- 使用与现有集群不冲突的 IP 地址再次创建集群。
移除运行状况不佳的集群
集群可能会由于多种原因而处于运行状况不佳的状态,例如:
- Connect Agent 或本地环境的连接问题。
- 用户集群的管理员集群被删除,或者管理员集群和用户集群之间存在连接问题。
- 在删除集群之前,集群的虚拟机已删除。
如果控制台无法删除集群,请使用 gcloud CLI 命令从运行状况不佳的集群中删除 Google Cloud 资源。如果您最近尚未更新 gcloud CLI,请运行以下命令来更新组件:
gcloud components update
接下来,删除 Google Cloud 资源。
用户集群
删除用户集群。
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 和舰队成员资格资源。
确认 GKE On-Prem API 资源已删除:
gcloud container vmware clusters list \ --project=PROJECT_ID \ --location=-
设置
--location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将--location
设置为特定区域。确认舰队成员资源已删除:
gcloud container fleet memberships list \ --project=PROJECT_ID
管理员集群
如果您已在 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 资源。
从舰队中移除集群:
gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=global
此命令会从 Google Cloud 中移除舰队成员资格资源。
确认 GKE On-Prem API 资源已删除:
gcloud container fleet memberships delete ADMIN_CLUSTER_NAME --project=FLEET_HOST_PROJECT_ID
设置
--location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将--location
设置为特定区域。确认舰队成员资源已删除:
gcloud container fleet memberships list \ --project=PROJECT_ID