在GKE中执行kubectl get nodes、kubectl get pods命令连接超时如何解决
GKE集群kubectl访问443端口超时排查解决方案
问题表现
执行kubectl get nodes、kubectl get pods等命令时返回如下报错:
Unable to connect to the server: dial tcp 35.238.244.7:443: i/o timeout
排查步骤及对应解决方法
1. 校验本地kubeconfig配置
- 执行
kubectl config current-context,确认当前上下文指向你创建的目标GKE集群 - 若上下文不匹配,执行
gcloud container clusters get-credentials <集群名称> --region <集群所在区域> --project <GCP项目ID>重新拉取正确的集群访问配置
2. 排查本地网络出站限制
- 执行
nc -zv 35.238.244.7 443测试本地到集群控制平面IP 443端口的连通性 - 若端口连通失败,先确认本地网络是否存在防火墙、代理限制出站的443端口访问,可尝试切换公网环境测试,或联系本地网络管理员放行对应IP、端口的出站规则
3. 检查GKE控制平面访问配置
- 登录GCP控制台进入GKE集群详情页,确认控制平面公开访问开关是否开启:
- 若未开启公开访问,集群控制平面仅支持VPC内网访问,需要通过同VPC内的跳转机、Cloud VPN/专线打通本地与GCP VPC网络后再访问
- 若已开启公开访问,查看控制平面授权网络配置,确认你本地的公网出口IP已加入白名单,默认配置0.0.0.0/0则允许所有IP访问,若有限制需要将本地出口IP添加到授权列表
4. 校验GCP VPC防火墙规则
- 检查GCP项目对应VPC的防火墙入站规则,确认存在放行使信IP段到GKE控制平面443端口的规则
- 确认无优先级更高的拒绝规则阻断了访问请求
5. 确认GKE集群运行状态
- 登录GCP控制台查看集群运行状态,确认集群未处于报错、升级、自动修复状态,若控制平面本身异常,等待集群恢复正常后再尝试访问
内容的提问来源于stack exchange,提问作者ashok kumar
相关产品推荐
相关产品推荐

