如何从Kubernetes集群直接到专用IP访问GCP中的托管postgres

时间:2019-05-14 13:58:46

标签: postgresql kubernetes google-cloud-platform google-cloud-sql

因此,我在Google Cloud中创建了一个postgreSQL实例,并且我有一个Kubernetes群集,其中包含要连接的容器。我知道cloud sql代理sidecar是一种方法,但是文档说我也应该能够连接到私有IP。

我注意到为我自动创建了一个VPC对等连接。它设置为目标网络10.108.224.0/24,即实例所在的位置,并具有us-central1的“下一跳区域”,即我的K8s集群所在的位置。

但是,当我尝试通过TCP 5432端口上的私有IP时,我超时了。我在文档中看不到任何有关修改防火墙规则以使其正常工作的内容,但是无论如何,我还是尝试过,发现与使用iptables编写自己的规则相比,GCP中的防火墙接口相当笨拙和混乱,但是我的尝试失败了。

除了去上云sql之外,还有谁知道为什么这行不通吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

您的GKE集群是否符合专用IP的environment requirements?它必须是与您的Cloud SQL实例位于同一VPC和区域上的启用VPC的群集。

答案 1 :(得分:0)

如果您的云SQL实例或在同一个VPC中都进行计算,则只有您可以在私有IP上创建对等VPC。

从cloud SQL计算VM中,您可以选择VPC和子网,还可以为GKE设置相同的子网,并且可以建立从pod到cloud sql的连接。

答案 2 :(得分:0)

最后,最简单的方法是只使用Google Cloud sql代理。与sidecar相对,我有多个需要数据库访问的容器,因此我将代理作为自己的容器放入服务中,并将其放入群集中,并且似乎可以正常工作。