GKE 无法连接服务器:拨打 tcp server_ip: i/o timeout

问题描述 投票:0回答:1

每次在 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

更新一些资源
kubernetes google-cloud-platform google-kubernetes-engine
1个回答
0
投票

首先,您能否让我知道您在哪里运行命令?是云shell、本地机器还是虚拟机实例?

根据集群环境,有多种情况可能导致此错误。一些经常发生的场景包括:

  • kubectl 无法与集群控制平面通信或不存在。
  • 集群的“控制平面授权网络”配置中不允许使用源 IP。

根据您的帖子,我假设您已添加控制平面授权网络。但是,源计算机上的 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

© www.soinside.com 2019 - 2024. All rights reserved.