每次在 kubernetes 集群中运行命令时,都会收到以下错误消息: unable to connect to the server: dial tcp server_ip: i/o timeout
我已经按照步骤尝试解决此处描述的问题:https://cloud.google.com/kubernetes-engine/docs/troubleshooting#kubectl-times-out,但它没有解决问题
有人遇到过这个问题吗?
我运行命令 kubectl getnodes -v=10 尝试查看有关错误的更多信息,但返回仅显示超时 命令输出
在这张图片中我在集群内部
就我而言,我需要做的是使用 kubectl apply -f my_file.yaml
更新一些资源首先,您能否让我知道您在哪里运行命令?是云shell、本地机器还是虚拟机实例?
根据集群环境,有多种情况可能导致此错误。一些经常发生的场景包括:
根据您的帖子,我假设您已添加控制平面授权网络。但是,源计算机上的 GKE 集群上下文可能未正确配置。 例如:kube 配置文件 ($HOME/.kube/config) 上的 GKE 集群上下文或端点 IP 不正确。
要解决此问题,请验证设置集群的上下文:导航到 $HOME/.kube/config 或执行命令 kubectl config view 以确保配置文件包含正确的集群上下文和控制平面的外部 IP 地址.
查看 kubectl 命令使用的当前/活动集群上下文并验证集群端点 IP 的示例。
kubectl config view --minify
检查配置文件后,如果当前上下文存在问题(例如无效 IP),您可能需要使用以下 gcloud 命令重新创建它。
gcloud container clusters get-credentials <CLUSTER_NAME> --region=<COMPUTE_REGION> --project=<PROJECT_ID>
替换以下内容:
CLUSTER_NAME:您的集群的名称。
COMPUTE_REGION:集群的 Compute Engine 区域。对于区域集群,请使用 --zone=COMPUTE_ZONE。
PROJECT_ID:创建 GKE 集群的项目 ID