Cloud Run已使用VPC连接器连接Redis,如何同时配置静态出口IP?
解决方案
无需额外部署新的VPC连接器,现有已用于连接Memorystore的无服务器连接器可同时满足两个需求。
报错原因说明
你创建子网时触发网段冲突报错,是因为现有serveless-connector已自动占用10.8.0.0/28网段。提示中出现的aet-uscentral1-serveless--connector-sbnt是GCP为无服务器连接器自动创建的预留子网,同区域同网段重复创建自然会冲突,不需要手动创建该子网。
具体配置步骤
- 调整Cloud Run VPC出口规则
默认配置下Cloud Run仅将VPC内部流量通过连接器转发,要实现固定出口IP,需将全量出站流量都转发到VPC,部署时新增--vpc-egress=all-traffic参数即可。 - 配置Cloud NAT绑定静态IP
- 在
us-central1区域为default网络创建云路由器 - 在该云路由器上配置Cloud NAT,将提前预留的静态外部IP绑定到NAT网关
整个过程无需修改现有VPC连接器配置,也不需要新增连接器或子网。
- 重新部署Cloud Run服务
更新后的部署命令参考:
gcloud beta run deploy service --vpc-connector=serveless-connector --vpc-egress=all-traffic ...
效果验证
- 原有Cloud Memorystore(Redis)访问逻辑无需修改,VPC内部连通性不受任何影响
- Cloud Run访问公网服务的出口IP即为绑定到Cloud NAT的静态IP,符合固定出口IP的要求
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

