在 Google Cloud 文档中,明确指出可以跨区域使用私有 IP 建立与 Cloud SQL 的连接,但目前我看到的并不是这样。私有访问已启用,但我仍然无法连接到 West1 区域中的实例。两个区域的防火墙规则相同。对等网络的路由是自动创建的,但具有不同的描述:
cloudsql-postgres-googleapis-com
servicenetworking-googleapis-com
并有不同的对应下一跳,我也没有在文档的任何地方看到这一点。有人能解释一下这个问题吗?
所有目的地均已启用防火墙。
第一个连接良好:
第二次超时(在不同的区域):
使用新创建的 VPC 在空项目上重现了相同的行为。
更新
我尝试使用需要私人服务访问的其他服务进行实验: MemoryStore 与 Redis但是对于这项服务,明确指出客户端必须与调用它的实例位于同一区域,所以我应该假设这是 Cloud Sql 文档中的拼写错误吗?
MemoryStore 文档:
更新
我在 Google 文档中发现了 Cloud SQL 的矛盾,Cloud SQL 的直接特定文档和有关私有服务访问的通用文档,有人可以确认哪个选项有效吗?
但这里却另有说法:
链接 1:https://cloud.google.com/vpc/docs/private-access-options#example
链接2:https://cloud.google.com/sql/docs/mysql/private-ip#quick-reference
答案1
这关于私人访问选项的文件指出客户网络中的虚拟机实例可以访问任意区域的服务资源 如果这服务支持它。某些服务可能不支持跨区域通信。例如,VM 实例只能与位于同一区域的 Cloud SQL 实例进行通信。查看相关服务的文档以了解更多信息。”
似乎很清楚,虽然跨区域访问资源是可能的,但它完全取决于具体服务,这意味着有些服务无法从不同区域访问。Cloud SQL 似乎就是这样的产品。
这第二个链接您已分享确认“您可以通过跨地区的私有 IP 进行连接”。
只是想看看这里的矛盾,但我没看到。文档对我来说似乎没问题。