跨项目Cloud Run无法通过私网IP访问Cloud SQL问题求助
跨项目Cloud Run私网访问Cloud SQL的排查与解决
核心问题在于Cloud Run默认运行在Google托管网络,未接入你的VPC环境——即便VPC对等已配置,也无法直接访问Cloud SQL的私网IP。按以下步骤排查解决:
给Cloud Run绑定VPC访问连接器
必须通过Serverless VPC Access连接器让Cloud Run接入VPC:- 在Cloud Run所属项目创建Serverless VPC Access连接器,选择已与Cloud SQL项目建立对等连接的VPC网络。
- 重新部署Cloud Run服务,添加参数:
确保服务使用该连接器访问VPC资源。gcloud run deploy [SERVICE_NAME] --vpc-connector=projects/[YOUR_PROJECT]/locations/[REGION]/connectors/[CONNECTOR_NAME]
校验VPC对等路由
虽然VM能互通,但要确认Cloud Run连接器子网的流量能路由到Cloud SQL私网段:- 查看Cloud Run所在项目的VPC路由表,确认Cloud SQL的私网IP段(如
10.20.0.0/16)已存在路由,下一跳指向VPC对等连接。 - 检查Cloud SQL所在项目的VPC路由表,同样要添加Cloud Run连接器子网的IP段路由,下一跳指向对等连接。
- 查看Cloud Run所在项目的VPC路由表,确认Cloud SQL的私网IP段(如
补充防火墙规则
现有规则可能未覆盖Cloud Run连接器的流量:- 在Cloud SQL项目的VPC中,创建入站规则:允许来自Cloud Run连接器子网IP段的流量访问数据库端口(MySQL用3306,PostgreSQL用5432)。
- 在Cloud Run项目的VPC中,创建出站规则:允许连接器子网的流量访问Cloud SQL私网IP段及对应端口。
确认Cloud SQL私网配置
确保Cloud SQL的私网设置正确:- 检查Cloud SQL实例已启用私网访问,且其私网子网不在VPC对等的冲突网段内。
- 私网访问无需在Cloud SQL的"授权网络"中添加IP,依赖VPC层面的路由和防火墙放行。
测试与日志排查
在Cloud Run服务中加入简单的连接测试(比如尝试telnet Cloud SQL私网IP的数据库端口),如果失败,查看Cloud Run日志定位具体错误(如路由不可达、端口被拒绝等)。
内容的提问来源于stack exchange,提问作者rahul gill
相关产品推荐
相关产品推荐

