我有一个在 Cloud Run 上运行的服务,以及一个在 Compute Engine 上运行的 MYSQL、MongoDB 数据库。目前,我正在使用公共 IP 进行它们之间的连接,我想使用内部 IP 来提高性能,但我找不到解决这个问题的方法,请帮我一些想法,谢谢。
4 回答
现在支持了。您可以使用 VPC 网络连接器(测试版):
此功能处于预发布状态,可能会更改或提供有限的支持。有关更多信息,请参阅产品发布阶段。
本页面展示了如何使用无服务器 VPC 访问将 Cloud Run(完全托管)服务直接连接到您的 VPC 网络,从而允许访问 Compute Engine VM 实例、Memorystore 实例和任何其他具有内部 IP 地址的资源。
要在 Cloud Run(完全托管)服务中使用无服务器 VPC 访问,您首先需要创建一个无服务器 VPC 访问连接器来处理与您的 VPC 网络的通信。创建连接器后,您将 Cloud Run(完全托管)服务配置设置为使用该连接器。
此处如何创建:创建无服务器 VPC 访问连接器,此处是有关它的概述:无服务器 VPC 访问示例
根据官方文档使用高级方法连接到实例
如果您有一个没有外部 IP 地址的隔离实例(例如有意与外部网络隔离的实例),您仍然可以使用其在 Google Cloud Virtual Private Cloud (VPC) 上的内部 IP 地址连接到它) 网络
但是,如果您检查 Cloud Run 尚不支持的服务,您会发现:
Virtual Private Cloud Cloud Run(全托管)无法连接到 VPC 网络。
您现在可以通过在部署时运行此命令来做到这一点:
gcloud run deploy SERVICE --image gcr.io/PROJECT_ID/IMAGE --vpc-connector CONNECTOR_NAME
如果您已有 Cloud Run 部署,则可以通过运行以下命令对其进行更新:
cloud run services update SERVICE --vpc-connector CONNECTOR_NAME
更多关于这里的信息
尚不支持从 Cloud Run Managed 连接到 VPC 私有地址。
此功能正在开发中,称为无服务器 VPC 访问。你可以在这里阅读更多。
如果您有一个在同一 VPC 中运行且具有公共 IP 地址的 Compute Engine 实例,您可以创建一个 SSH 隧道以通过公共实例连接到私有 IP 地址。这需要在您自己的代码中创建隧道,这很容易做到。