将实例连接到多个 VPC

本页面介绍了如何在传递性对等互连 VPC 中连接到 Cloud SQL 实例。

Cloud SQL 提供了以下方法来供您使用专用 IP 将 Cloud SQL 实例连接到多个 VPC:

如需详细了解 Cloud SQL 实例和多个 VPC,请参阅多个 VPC 中的 Cloud SQL 实例

使用自定义通告路由连接

您可以使用 Cloud Router 在经过中间 VPC 的两个网络之间配置自定义通告路由,以将多个 VPC 连接到您的 Cloud SQL 实例。这两个 VPC 必须使用虚拟专用网 (VPN)、Cloud Interconnect 或任何其他 Cloud Router 支持的网络进行连接。

自定义路由通告

借助自定义路由通告,您的 Cloud SQL VPC (VPC C) 会使用中间 VPC (VPC B) 连接到主 VPC (VPC A)。 您可以通过以下方式配置这些网络之间的共享路由:

  • 您可以使用 Cloud Router 手动通告经过中间 VPC 的两个网络之间的路由。如需详细了解如何配置 Cloud Router 以手动通告路由,请参阅传输网络

  • 您可以创建两个相互连接的高可用性 VPC 网关,以桥接两个不同的 VPC,并配置 Cloud Router 路由器以便在它们之间共享路由。如需详细了解如何设置高可用性 VPC 网关,请参阅创建高可用性 VPC 网关以连接 VPC 网络

我们建议使用自定义通告路由,通过 Cloud Router 将多个 VPC 连接到您的 Cloud SQL 实例。

使用中间代理 (SOCKS5) 连接

您可以在中间 VPC 上设置中间代理(如 SOCKS5 代理)以及 Cloud SQL Auth 代理(在客户端和 Cloud SQL 实例之间的主 VPC 中)。这样一来,中间节点便可以将加密流量从 Cloud SQL Auth 代理转发到 Cloud SQL 实例。

使用中间代理进行连接。

如需使用中间代理从多个 VPC 连接到 Cloud SQL 实例,请按照以下步骤操作:

  1. 在外部客户端上,安装 gcloud CLI

  2. 在中间虚拟机上,安装、配置并运行 SOCKS 服务器。此服务器的一个示例是 Dante,它是一种常用的开源解决方案。

  3. 将服务器配置为绑定到虚拟机的 ens4 网络接口以用于外部和内部连接。对于内部连接,请指定任意端口。

  4. 配置 VPC 的防火墙,以允许从相应 IP 地址或范围流向 SOCKS 服务器配置的端口的 TCP 流量。

  5. 在外部客户端上,下载并安装 Cloud SQL Auth 代理

  6. 在外部客户端上,启动 Cloud SQL Auth 代理

    由于您已将实例配置为使用内部 IP 地址,因此在启动 Cloud SQL Auth 代理时,您必须提供 --private-ip 选项。

    此外,请将 ALL_PROXY 环境变量设置为中间虚拟机的 IP 地址,并指定 SOCKS 服务器使用的端口。例如 ALL_PROXY=socks5://VM_IP_ADDRESS:SOCKS_SERVER_PORT.

    如果您要从对等互连 VPC 进行连接,请使用中间虚拟机的内部 IP 地址;否则,请使用其外部 IP 地址。

  7. 在外部客户端上,使用 psql 测试连接。

使用 Cloud SQL Auth 代理即服务连接

您可以在中间 VPC(而不是外部客户端)上安装并运行 Cloud SQL Auth 代理,并通过将代理与协议感知代理(也称为连接池程序)配对来启用安全连接。连接池程序的示例包括 PGbouncerPgpool-II(仅限 PostgreSQL)。

通过此连接方法,您的应用可以使用配置的 SSL 安全地连接到池程序。池程序使用 Cloud SQL Auth 代理将数据库查询传递给 Cloud SQL 实例。

使用 Private Service Connect 连接

借助 Private Service Connect,您可以在不同项目或组织之间连接到多个 VPC 网络。您可以使用 Private Service Connect 连接到主实例或其任何读取副本。如需详细了解 Private Service Connect,请参阅 Private Service Connect 概览

如需使用 Private Service Connect 跨多个 VPC 进行连接,请参阅使用 Private Service Connect 连接到实例