Cloud Build私有工作池无法连接私有GKE集群的排查求助
问题排查:Cloud Build私有工作池无法连接跨VPC私有GKE集群
问题详情
我正尝试配置Cloud Build私有工作池访问跨VPC的私有GKE集群,已完成VPC、路由器、私有工作池等组件创建,但构建时出现连接超时。具体信息:
- Cloud Build私有工作池实例网段:
192.168.0.0/16 - 私有GKE集群地址:
10.68.0.2(位于另一个VPC) - 两个VPC内的VM测试连通性正常,但Cloud Build构建执行
kubectl get nodes时超时。
构建YAML配置
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: - '-eEuo' - 'pipefail' - '-c' - |- gcloud container clusters get-credentials GKE-CLUSTER-NAME --zone us-central1-a --project PROJECT kubectl get nodes options: workerPool: 'projects/PROJECT/locations/us-central1/workerPools/private-cloudbuild-pool'
构建错误输出
Step #1: Fetching cluster endpoint and auth data.
Step #1: kubeconfig entry generated for GKE-CLUSTER-NAME.
Step #1: E1018 20:46:10.807598 28 memcache.go:265] couldn't get current server API group list: Get "https://10.68.0.2/api?timeout=32s": dial tcp 10.68.0.2:443: i/o timeout
可能遗漏的配置步骤
1. 补充GKE集群的防火墙规则
私有GKE集群默认防火墙仅允许授权来源访问控制平面443端口,需添加规则允许Cloud Build工作池网段访问:
- 目标:选择GKE集群控制平面的标签(格式通常为
gke-<集群名称>-<随机后缀>-master) - 协议/端口:
tcp:443 - 来源:
192.168.0.0/16 - 动作:允许
2. 确认VPC Peering的路由完整性
虽然VM连通正常,仍需检查:
- 两个VPC的Peering连接状态为
ACTIVE - 双向路由表中均存在指向对方VPC网段的路由,无路由冲突
- 无自定义路由、路由策略阻断跨VPC流量
3. 验证Cloud Build私有工作池的网络配置
确保工作池使用正确的内部网络配置:
- 工作池创建时指定的VPC/子网为
192.168.0.0/16所在网络 - 工作池已启用私有IP访问,未配置依赖NAT的外部访问模式
4. 检查GKE集群的私有访问授权
确认GKE控制平面允许跨VPC访问:
- 在GKE集群配置中,将Cloud Build工作池所在VPC添加到私有集群访问的授权网络列表
- 若使用VPC Peering,需确保GKE集群控制平面已授权Peering的VPC网段
5. 确认Cloud Build服务账号权限
虽然错误为连接超时,但需保障服务账号具备必要权限:
- 拥有
container.clusters.getCredentials权限(可通过roles/container.admin或roles/container.clusterViewer角色授予) - 在GKE集群RBAC中,为该服务账号授予节点访问权限(如
view角色)
内容的提问来源于stack exchange,提问作者Juan Manuel Garcia
相关产品推荐
相关产品推荐

