如何通过Cloud Build工作池访问带公网端点的私有GKE集群
Cloud Build工作池访问私有GKE控制平面的IP白名单解决方案
关键问题定位
Cloud Build工作池访问带公网端点的私有GKE时,出口流量的IP并非工作池的内部IP段,而是取决于网络配置:要么是Cloud Build服务的静态出站IP,要么是工作池所在VPC的NAT网关IP。直接开放0.0.0.0/0不符合安全要求,需精准白名单对应IP范围。
具体解决步骤
1. 获取工作池的出站IP范围
场景1:使用私有服务连接(PSC)且无NAT
Cloud Build工作池的出站流量通过Google服务网络转发,可通过命令查询关联的PSC地址段:gcloud compute addresses list --filter="purpose=PRIVATE_SERVICE_CONNECT" --format="value(address)"也可在GCP控制台的Cloud Build工作池详情页,查看PSC连接的IP配置。
场景2:配置了云NAT网关
直接使用NAT网关的静态IP即可,可在VPC的NAT网关详情页获取该IP地址。
2. 配置GKE控制平面授权网络
进入GKE集群详情页,编辑「控制平面授权网络」,添加以下内容:
- 场景1添加查询到的PSC IP段
- 场景2添加NAT网关的静态IP
确保只开放必要的IP范围,避免过度授权。
3. 验证与排障
- 触发Cloud Build构建,检查日志中是否存在GKE访问错误
- 在工作池实例中执行
kubectl cluster-info测试连接,确认网络可达性 - 检查VPC防火墙规则,允许工作池IP段访问GKE控制平面的443端口
完全私有GKE的补全方案(针对最初的VPC对等连接尝试)
如果回到完全私有GKE部署,需确保:
- 完成Cloud Build工作池VPC与GKE集群VPC的对等连接配置
- 在GKE控制平面授权网络中添加工作池VPC的内部IP段
- 配置VPC防火墙规则,允许工作池IP段访问GKE控制平面443端口
内容的提问来源于stack exchange,提问作者Priyath Gregory
相关产品推荐
相关产品推荐

