2

这些是步骤:

  • 在“项目 A”中,我有一个带有 postgresql 私有 IP 的“网络 A”。
  • 可以通过私有 IP 从存在于同一“网络 A”中的 VM 访问 postgresql。
  • 在同一个“项目 A”中创建一个新的“网络 B”
  • 在“network A”和“network B”之间创建一个“VPC network peer”
  • 完全开放的防火墙
  • 无法从“网络 B”访问 postgresql,但可以 ping 存在于“网络 A”上的 VM

为什么我无法访问 postgresql?是因为 SQL Private IP 处于 Beta 模式,还是我在这里遗漏了什么?

4

2 回答 2

5

Cloud SQL 私有 IP 访问是通过对等互连设置的,因此网络 A 与包含您的 Cloud SQL 实例的网络 Z 对等互连。当您将 A 与 B 对等时,B 无权访问网络 Z。

于 2018-10-12T21:48:20.587 回答
4

是的,正如前面的回复中提到的那样,代理是要走的路,因为对等互连是不可传递的。

从对等网络“B”VM 访问网络“A”中的 SQL 代理将很简单。

至于从网络“B”中的 Kubernetes 集群访问,可能存在一个陷阱。默认情况下,Kubernetes 不会对发往 10.0.0.0/8 的流量进行 SNAT,并将尝试将其保持在本地。因此,您需要更改iptables主机实例的规则才能到达外部。

一个永久的解决方案是设置DaemonSet,但您可以先在主机上手动更改来测试这个理论。例如:

iptables -A POSTROUTING -d 10.11.0.0/24 \
   -m addrtype ! --dst-type LOCAL -j MASQUERADE -t nat

这是一个优秀的简单指南https://blog.mrtrustor.net/post/iptables-kubernetes/的链接。

于 2019-03-05T14:03:58.047 回答