Cloud Run 可以在 VPC 直出口访问云 sql 使用 unix socket 吗?

问题描述 投票:0回答:1

我对 GCP 网络还不熟悉。

我最近使用直接 VPC 出口。 如果我禁用直接 VPC 出口并使用以下格式 DATABASE_URL

postgresql://user:password@localhost/db_name?host=/cloudsql/project_id:region:db_id

,它可以工作,但如果我启用 VPC 出口,它会发出错误。

couldn't listen at "/tmp/cloudsql-proxy-tmp/connection_name ~ bind: invalid argument

我猜想VPC直接出口的VPC子网不允许使用IP的出口端口或互联网连接,尽管我认为VPC网络可以使用谷歌私人访问。 我知道云 SQL 网络与项目 VPC 网络分离,因此我们必须使用 VPC 对等互连,但如果可以的话,我只想将公共 IP 与云 SQL 代理一起使用。 当我们使用直连VPC出口的子网时,是否必须使用云SQL的私有IP地址?

google-cloud-platform google-cloud-sql google-cloud-run cloud-sql-proxy
1个回答
0
投票

进一步研究,我得出结论,cloud run 的默认 cloud-sql-proxy 连接现在无法配置 https://github.com/GoogleCloudPlatform/cloud-sql-proxy 的 private-ip 选项。

这意味着带有代理的套接字不会连接到私有IP,并且应该暗示使用谷歌私有访问的代理来访问身份感知代理。这就是unix套接字连接被拒绝的原因。如果我们想在VPC中使用unix套接字连接,只有我的想法是使用 sidecar 中指定的 private-ip 选项来运行云身份验证代理,如 guillaume blaquiere 的评论

当前可靠的解决方法是私有 IP 访问,如 @John Hanley 所描述的

@gang-chen 介绍的文章非常有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.