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

如何用Cloud Build私有池访问多个私有GKE集群?

解决Cloud Build访问多私有GKE集群的问题

不需要为每个GKE集群单独创建Cloud Build私有池,你可以复用同一个私有池,通过调整配置让它同时访问staging和production集群。下面是具体的操作步骤:

1. 确保网络连通性

  • 确认Cloud Build私有池所在的VPC,与staging、production集群的VPC处于同一网络,或已完成VPC对等连接配置,让私有池的子网能访问两个集群的控制平面和节点网络。
  • 如果两个集群分属不同VPC,需要分别建立私有池VPC与每个集群VPC的对等连接。

2. 调整防火墙规则

  • 为私有池子网添加出站防火墙规则,允许访问production集群控制平面的443端口,以及集群节点的部署相关端口。
  • 同时在production集群的VPC中添加入站规则,允许来自私有池子网IP范围的流量访问控制平面和节点的必要端口。

3. 配置GKE权限

  • 确保Cloud Build私有池使用的服务账号,拥有production集群的必要权限,比如roles/container.developer(或按需使用更精细的权限)。
  • 执行命令绑定权限:
gcloud projects add-iam-policy-binding YOUR_PROD_PROJECT_ID \
  --member=serviceAccount:YOUR_CLOUD_BUILD_SERVICE_ACCOUNT \
  --role=roles/container.developer
  • 也可以直接在GKE集群的IAM页面中添加该服务账号并赋予对应角色。

4. 更新Cloud Deploy流水线配置

  • 在clouddeploy.yaml中,确保production环境的部署任务指向同一个私有池,同时正确配置production集群的信息。示例片段:
targets:
- name: staging
  gke:
    cluster: projects/YOUR_PROJECT/locations/YOUR_REGION/clusters/staging-cluster
- name: production
  gke:
    cluster: projects/YOUR_PROJECT/locations/YOUR_REGION/clusters/production-cluster
build:
  cloudBuild:
    pool:
      name: projects/YOUR_PROJECT/locations/YOUR_REGION/workerPools/your-shared-pool

5. 验证连接

  • 启动一个使用该私有池的Cloud Build任务,测试访问production集群:
gcloud container clusters get-credentials production-cluster --region YOUR_REGION --project YOUR_PROD_PROJECT_ID
kubectl get nodes
  • 如果能成功返回节点列表,说明配置生效。

排查要点

如果配置后仍无法访问,检查以下内容:

  • production集群的私有端点是否允许来自私有池子网的访问
  • 服务账号的权限是否正确应用到production集群
  • VPC对等连接的路由配置是否正确,无冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:36:34