You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins部署至GKE集群时构建失败问题求助

解决GKE集群恢复后Jenkins部署超时问题

核心问题定位

错误提示dial tcp 34.xxx.xxx.xxx:443: i/o timeout表明Jenkins所在集群无法与生产GKE集群的控制平面建立网络连接,大概率是项目恢复后网络或权限配置被重置导致。

排查与修复步骤

1. 验证网络连通性

  • 登录Jenkins集群的任意节点或Jenkins代理Pod,执行以下命令测试TCP连通性:
    telnet 34.xxx.xxx.xxx 443
    # 或使用nc工具
    nc -zv 34.xxx.xxx.xxx 443
    
    如果命令超时,直接排查网络链路问题;若能连通,再检查权限配置。

2. 检查VPC对等连接状态

  • 登录GCP控制台,确认Jenkins集群所在VPC与生产GKE集群VPC的VPC对等连接是否处于激活状态:
    • 若对等连接被删除,重新创建并确保两端子网CIDR无冲突。
    • 检查对等连接的路由配置,确认生产GKE集群的控制平面IP段已被正确路由到Jenkins VPC。

3. 重置GKE控制平面授权网络

  • 生产集群恢复后,控制平面的授权网络可能被重置:
    1. 进入GCP控制台的GKE集群详情页,找到「控制平面授权」配置项。
    2. 将Jenkins集群的VPC CIDR段或节点公网IP添加到允许列表中。
    3. 保存配置后等待5-10分钟,让控制平面生效新的授权规则。

4. 确认Jenkins服务账号权限

  • 检查Jenkins用于访问GKE的服务账号:
    1. 确认该服务账号在生产项目中仍拥有roles/container.admin或至少roles/container.developer的IAM角色。
    2. 用该服务账号密钥本地测试:
      gcloud auth activate-service-account --key-file=<服务账号密钥文件>
      gcloud container clusters get-credentials <生产集群名称> --region=<区域> --project=<生产项目ID>
      kubectl get nodes
      
      若命令执行失败,重新为服务账号绑定对应IAM角色。

5. 检查防火墙规则

  • 确认生产项目的防火墙规则允许Jenkins集群访问GKE控制平面:
    1. 执行以下命令查看GKE默认的控制平面访问规则:
      gcloud compute firewall-rules list --project=<生产项目ID> --filter="targetTags=master"
      
    2. 确保规则的source-ranges包含Jenkins集群的VPC CIDR,若缺失则添加对应条目。

临时应急方案

如果网络配置变更需要较长时间生效,可临时为Jenkins代理节点分配公网IP,将该IP添加到GKE控制平面授权网络中,验证部署流程是否能正常运行,待永久网络配置生效后再移除。

内容的提问来源于stack exchange,提问作者JohnR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:35:33