调试集群的常见 CLI 问题
虚拟私有云 经典基础架构
查看 CLI 连接问题或命令失败的以下常见原因。
防火墙阻止 CLI 命令运行
当您从CLI运行 ibmcloud
、kubectl
、oc
或 calicoctl
命令时,它们会失败。
您可能具有企业网络策略,这些策略灰阻止通过代理或防火墙从本地系统访问公共端点。
此任务需要集群的 管理员 IBM Cloud IAM 平台访问角色。
kubectl
或 oc
命令不起作用
当您对集群运行 kubectl
或 oc
命令时,您的命令会失败,并显示类似以下内容的错误消息。
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
。
如果您有多个集群,且版本不同或容器平台不同(例如 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 集群。
- 通过在控制台中或使用
cluster ls
或worker ls
命令来查看集群和工作程序节点的详细信息,检查集群和工作程序节点的更新是否可用。 如果可用,请将集群和工作程序节点更新到最新版本。 - 删除VPN Pod,重新启动。 这将安排另一个 VPN pod。 在其 STATUS 为 Running 时,尝试连接先前无法连接的 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 同步。
开始之前:
要同步用户的 IAM 信息,您可以使用 2 选项:
- 从 Red Hat OpenShift 控制台登录您的集群。
- 通过运行
ibmcloud oc cluster config --cluster CLUSTER
命令来设置集群的命令行上下文。
如果将 API 密钥用于功能标识或其他用户,请确保以正确的用户身份登录。
受影响的用户完成 IAM 同步后,集群管理员可以通过使用 oc get users
命令列出用户来验证该用户是否存在于集群中。
缺少项目或 oc
和 kubectl
命令失败
虚拟私有云 经典基础架构
您无法看到所有可以访问的项目。 尝试运行 oc
或 kubectl
命令时,看到类似以下内容的错误。
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
并重新尝试。