使用本节可对 TKG 集群连接问题和登录错误进行故障排除。

权限不足错误

如果您对 vSphere 命名空间 没有足够的权限,则无法以 vCenter Single Sign-On 用户身份连接到 主管 或 TKG 集群。

当您尝试以 vCenter Single Sign-On 用户身份连接到 主管 或 TKG 集群时,kubectl 的 vSphere 插件 返回错误消息 Error from server (Forbidden)

您在 vSphere 命名空间 上的角色权限不足,或者您的用户帐户尚未被授予访问权限。

如果您是操作集群的 DevOps 工程师,请与您的 vSphere 管理员核实是否已向您授予对 vSphere 命名空间编辑权限。如果您是使用集群部署工作负载的开发人员,请与您的集群管理员核实是否已向您授予集群访问权限。

Kubectl vSphere 登录错误

如果在尝试使用 kubectl 的 vSphere 插件 登录到 主管 或 TKG 集群时收到以下错误,可能是由于登录错误所致。
Failed to get available workloads, response from the server was invalid.
要对登录错误进行故障排除,请使用 -v=10 获取更详细的日志输出。
kubectl vsphere login --server=10.110.150.56 --vsphere-username [email protected] -v=10
例如,下面显示了如何使用详细输出显示 invalid or missing credentials 错误。
DEBU[0000] User passed verbosity level: 10
DEBU[0000] Setting verbosity level: 10
DEBU[0000] Setting request timeout:
DEBU[0000] login called as: /usr/local/bin/kubectl-vsphere login --server=10.110.150.56 --vsphere-username [email protected] -v=10
DEBU[0000] Creating wcp.Client for --server=10.110.150.56.
INFO[0000] Does not appear to be a vCenter or ESXi address.
DEBU[0000] Got response:
INFO[0000] Using [email protected] as username.
DEBU[0000] Env variable KUBECTL_VSPHERE_PASSWORD is present
DEBU[0000] Error while getting list of workloads: invalid or missing credentials
FATA[0000] Failed to get available workloads, response from the server was invalid.

通过 SSH 连接到 主管

可能需要通过 SSH 连接到 主管,以对登录错误进行故障排除。
警告: 通过 SSH 连接到 主管 控制平面节点时,您有权永久损坏 主管 集群。如果 VMware 技术支持团队发现客户从 主管 控制平面节点对 主管 组件进行更改的证据,VMware 技术支持团队可能会将 主管 集群标记为不受支持,并要求您重新部署 vSphere IaaS control plane 解决方案。此会话只能用于测试网络、查看日志以及运行 kubectl logs/get/describe 命令。如果知识库文章或 VMware 技术支持团队未明确允许,请勿通过此会话部署、删除或编辑任何内容。
要通过 SSH 连接到 主管 控制平面节点,请完成以下步骤。
  1. 使用 root 用户帐户登录 vCenter。
  2. 键入 dcli +i,以在交互模式下使用数据中心 CLI。
  3. 运行命令 namespacemanagement software clusters list 以返回 主管 的状态。
  4. 键入 exit 以退出 dcli shell。
  5. 键入 shell 以进入 bash shell 模式。
  6. 键入 /usr/lib/vmware-wcp/decyptK8Pwd.py 以获取 主管 的 IP 地址和密码。
  7. 键入 ssh 10.100.150.56 以通过 ssh 连接到 主管,其中示例 IP 地址将替换为上一个命令返回的 IP 地址。