首页 > 解决方案 > 在单独的项目中访问 Cloud SQL 实例

问题描述

我正在寻找一种解决方案(也许这不是最好的方法),让应用程序在 Project-A 中的一个 GKE 集群上运行,访问 Project-B 中的 Cloud SQL 实例,通过它的内部 IP 和理想情况下通过云 SQL 代理。更多信息:

当我尝试从项目 A 到项目 B 时,我们会遇到连接超时。

我了解,在创建具有内部 IP 的云 sql 实例时,会在同一个项目中的 VPC 中创建另一个名为 servicenetworking-googleapis.com 的单独 VPC 对等连接。

从网络背景来看,我的想法是项目-A 中没有 IP 路由,如果要访问云 SQL 的私有 IP,则告诉 pod 流量通过 2 个项目之间的 VPC 对等连接实例。

但我想知道是否有其他人尝试过同样的事情。

标签: google-cloud-platformgoogle-cloud-sqlgoogle-vpc

解决方案


我在文档中发现,不支持传递对等。自己没有尝试过,但似乎推荐的方法是使用共享 VPC 从多个项目访问 CloudSQL。在本节中: https ://cloud.google.com/sql/docs/mysql/private-ip#quick-reference

传递对等互连
只有直接对等互连的网络才能进行通信。不支持传递对等互连。换言之,如果 VPC 网络 N1 与 N2 和 N3 对等,但 N2 和 N3 没有直接连接,则 VPC 网络 N2 无法通过 VPC Network Peering 与 VPC 网络 N3 通信。一个项目中的客户端可以使用共享 VPC 网络连接到多个项目中的 Cloud SQL 实例。

您可以使用以下指南在项目之间设置共享 VPC。概括起来,它涉及以下步骤:

  • 将托管您的 Cloud SQL 实例的项目设置为宿主项目,因为它是共享资源的项目,在这种情况下包括您的 Cloud SQL 实例。
  • 选择要共享给其他项目的子网
  • 将托管 GKE 集群的项目设置为服务项目。然后可以将此服务项目附加到之前设置的宿主项目。
  • 将服务项目附加到宿主项目并设置适当的 VPC 管理员角色,以便允许服务项目中的用户访问共享资源。

推荐阅读