IBM Cloud Docs
调试集群的常见 CLI 问题

调试集群的常见 CLI 问题

虚拟私有云 经典基础架构

查看 CLI 连接问题或命令失败的以下常见原因。

防火墙阻止 CLI 命令运行

当您从CLI运行 ibmcloudkubectloccalicoctl 命令时,它们会失败。

您可能具有企业网络策略,这些策略灰阻止通过代理或防火墙从本地系统访问公共端点。

允许 TCP 访问以使 CLI 命令能够运作

此任务需要集群的 管理员 IBM Cloud IAM 平台访问角色

kubectloc 命令不起作用

当您对集群运行 kubectloc 命令时,您的命令会失败,并显示类似以下内容的错误消息。

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

您的 kubectl 版本与集群版本不同。

Kubernetes 不支持kubectl 客户端版本与服务器版本相差 2 个或更多版本(n +/- 2)。 如果您使用社区 Kubernetes 集群,那么还可能具有 kubectl 的 Red Hat OpenShift 版本,这不适用于社区 Kubernetes 集群。

要检查您的客户端 kubectl 版本与群集服务器版本是否一致,请运行 oc version --short

安装与集群版本匹配的 CLI 版本

如果您有多个集群,且版本不同或容器平台不同(例如 Red Hat OpenShift ),请将每个 kubectl 版本的二进制文件下载到单独的目录中。 然后,您可以在本地命令行界面(CLI)配置文件中设置一个别名,指向与您要使用的集群的 kubectl 版本匹配的 kubectl 二进制文件目录,或者您可以使用 brew switch kubernetes-cli <major.minor> 之类的工具。

尝试连接到 pod 时超时

您尝试连接到 pod,例如使用 oc exec 登录或使用 oc logs 获取日志。 该 pod 运行正常,但是您会看到类似于以下内容的错误消息。

Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out

VPN服务器出现配置问题,无法通过其内部地址访问Pod。

开始之前: 访问 Red Hat OpenShift 集群

  1. 通过在控制台中或使用 cluster lsworker ls 命令来查看集群和工作程序节点的详细信息,检查集群和工作程序节点的更新是否可用。 如果可用,请将集群和工作程序节点更新到最新版本
  2. 删除VPN Pod,重新启动。 这将安排另一个 VPN pod。 在其 STATUSRunning 时,尝试连接先前无法连接的 pod。
    oc delete pod -n kube-system -l app=vpn
    

尝试通过 oc login 登录到 Red Hat OpenShift 集群时发生 500 错误

首次尝试通过 oc login 登录到 Red Hat OpenShift 集群时,您会看到类似如下的错误消息。

$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Error from server (InternalError): Internal error occurred: unexpected response: 500

对 IAM 用户角色的一些最新更改尚未同步到 Red Hat OpenShift 集群。

将 IAM 用户信息同步到 Red Hat OpenShift 集群。 执行初始用户同步后,应自动执行进一步的 RBAC 同步。

开始之前:

访问 Red Hat OpenShift 集群

要同步用户的 IAM 信息,您可以使用 2 选项:

  • 从 Red Hat OpenShift 控制台登录您的集群。
  • 通过运行 ibmcloud oc cluster config --cluster CLUSTER 命令来设置集群的命令行上下文。

如果将 API 密钥用于功能标识或其他用户,请确保以正确的用户身份登录。

受影响的用户完成 IAM 同步后,集群管理员可以通过使用 oc get users 命令列出用户来验证该用户是否存在于集群中。

缺少项目或 ockubectl 命令失败

虚拟私有云 经典基础架构

您无法看到所有可以访问的项目。 尝试运行 ockubectl 命令时,看到类似以下内容的错误。

No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched

您需要下载 admin 配置文件,以便运行需要 cluster-admin 集群角色的命令。

请运行 ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin 并重新尝试。