【问题标题】:Access Cloud SQL instance in separate project在单独的项目中访问 Cloud SQL 实例
【发布时间】:2021-11-14 10:39:34
【问题描述】:

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

  • 我们在项目 A 和项目 B 之间有 VPC 对等互连,来自两个 VPC 的流量肯定可以正常流动
  • 我们在项目 A 的 GKE 集群中运行 Cloud SQL 代理,并定义了项目 B 中的 SQL 实例
  • 云 SQL 实例只有一个内部私有 IP
  • 项目 B 中 GKE 集群的 Pod 可以访问同一项目 (Project-B) 中的 Cloud SQL,因此我知道内部连接肯定存在
  • 只有当我们在项目 B 中向云 SQL 实例短暂添加公共 IP 时,才能通过 Cloud SQL 代理从项目 A 进行连接

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

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

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

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

【问题讨论】:

    标签: google-cloud-platform google-cloud-sql google-vpc


    【解决方案1】:

    我在文档中发现不支持传递对等。自己没有尝试过,但似乎推荐的方法是使用共享 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 实例。

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

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

    【讨论】:

    • 你是对的。不允许传递对等互连(过去测试过),是的,共享 VPC 是此用例的最佳解决方案
    • 在Cloud SQL的公网IP(无授权网络)上使用Cloud SQL代理也是一个不错的解决方案。 VPC 对等传递性问题的解决方法是创建一个 VPN,而不是在 VPC 之间创建一个 VPC 对等。项目A和B
    【解决方案2】:

    正如另一个答案中提到的,VPC 对等互连是不可传递的。因此,即使项目 A 和项目 B 之间存在 VPC 对等互连,这并不意味着项目 A 可以与私有 IP Cloud SQL 实例(部署在项目 B 中对等的另一个 VPC 内)进行通信。

    作为一种解决方法,您可以在项目 B 中部署 SOCKS5 代理,并让项目 A 使用 Cloud SQL 代理连接到它。

    ALL_PROXY=socks5://localhost:8000 cloud_sql_proxy \
     -instances=$INSTANCE_CONNECTION_NAME=tcp:5432
    

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多