问题:你好,我最近开始使用GCP。对于任务,需要将"vpc2"中的"prod"项目中仅存在私有ip的云sql实例连接到"vpc1"中的diff项目"dev"中启动的vm。
解决方案尝试:我已经从"vpc2"建立了一个专用服务连接,用于向我的sql实例提供专用ip。而且我还做了vpc对等b/w vpc1&启用了自定义路由导入/导出的vpc2。但是我无法从vm访问sql。目前我不想使用共享vpc或sql代理功能。
谢谢。
实际上,当您为云SQL数据库创建私有IP时,您就为您的云SQL实例创建了VPC网络和Google托管网络之间的对等。因此,你不能创建另一个对等,因为你打破了对等传递性规则
只有直接对等网络才能通信。不支持传递对等。换言之,如果VPC网络N1与N2和N3进行对等,但N2与N3没有直接连接,则VPC网络N2无法通过VPC网络对等与VPC网络N3通信。
有几种解决方案:
- 在没有任何允许的网络的情况下(出于安全原因(,在Cloud SQL实例上设置一个公共IP,并在您的开发项目中使用Cloud SQL代理。它将能够通过公共IP和加密协议连接到CLoud SQL实例但是你不想使用云SQL代理;此外,您需要在您的prod Cloud SQL实例上添加一个公共IP,您可能没有被授权这样做
- 建立共享专有网络。但是,在有很多服务限制的情况下,管理起来并不容易而且你不想使用这个解决方案
- 我的最新建议是在您的项目之间建立一个云VPN。这是一种变通方法,但效果很好
我有一个类似的问题,我有两个项目a和B,我需要从项目a访问项目B中的云sql实例。我用pritunl创建了一个简单的VPN实例,配置了pritunl内部的路由,之后我只在项目a和项目B之间创建了一条VPN Ipsec,带有到云sql的自定义路由,它起了作用,现在,我可以从笔记本电脑本地使用内部IP访问数据库。