从Cloud Composer连接到Cloud SQL for PosgreSQL



我的问题是如何配置Google Cloud Composer,以便在同一Google Cloud项目中使用相同的网络配置访问Google Cloud SQL。

  • 云SQL配置为与默认网络关联的私有IP。云SQL配置

  • Cloud Composer已配置网络ID=默认Cloud Composer配置

执行DAG时,使用配置了专用IP和默认端口(5432(的PostgresOperator进行连接,我们总是会得到相同的连接错误:

错误-无法连接到服务器:连接超时ou是服务器在主机"private_ip"上运行,并接受上的TCP/ip连接端口5432

我们预计应该建立连接,因为我们已经配置了相同的网络,并且我们正在使用私有IP从Composer访问云SQL服务器。

根据Introducing private networking connection for Cloud SQL,这仍然是两个独立的网段(请参阅那里的可视化方案(。因此需要VPC网络对等,以获得可路由的私有IP。请参阅代码实验室,它也涵盖了这个场景。

Composer的请求来自pod的IP地址,该地址在VPC之外是不可路由的。因此,它必须伪装成10.0.0.0/8中的节点接口的IP(当使用默认网络时(。

如果您在设置私有IP连接时将CloudSQL实例配置为使用自动生成的IP范围,则该IP很可能也在10.0.0.0/8中,但不在同一VPC内。

如果连接到10.0.0.0/8并且不在VPC中,则无法路由。作为一种变通方法,您可以创建一个自定义地址范围,例如192.168.X.X:

gcloud beta compute addresses create [RESERVED_RANGE_NAME] 
--global 
--purpose=VPC_PEERING 
--addresses=192.168.0.0 
--prefix-length=16 
--description=[DESCRIPTION] 
--network=[VPC_NETWORK] 

并将您的云SQL实例的私有IP配置在该范围内。

云SQL代理是一个很好的方法,类似的问题(如果不一样的话(已经得到了回答,并提供了有关设置的详细信息。

要解决内部IP问题,请参阅谷歌文档:

您可以使用云SQL代理连接到也配置为使用私有IP的实例。代理可以使用专用IP地址或公共IP地址进行连接。如果使用云SQL代理连接到同时分配了公用和专用IP地址的实例,则默认情况下代理使用公用IP地址。

相关内容

  • 没有找到相关文章

最新更新