如何只允许访问postgresql中的kubernetes pod?

时间:2017-10-16 08:22:41

标签: django postgresql docker kubernetes google-kubernetes-engine

我在GKE的Kubernetes中运行了一个Django应用程序。并且该django应用程序连接到静态(非容器化)postgresql服务器。由于它们都位于一个区域,我的django应用程序使用内部IP连接到数据库。

我只希望我的django应用程序请求连接到postgresql数据库并拒绝来自其他IP的请求的连接。

为此,我在pg_hba.conf做了这个:

host    all             all             14.133.0.0/24              md5

因为所有内部IP都以14.133开头。但是,请求来自pod IP,因此拒绝连接请求。

Pod IP的示例可以是14.4.123.32。因此,如果我在pg_hba.conf中执行以下操作,则问题将得到解决:

host    all             all             14.0.0.0/8              md5

另外需要注意的是,Pod IP总是在变化。因此,一旦pod更新,此解决方案将会中断。

最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

  

另外需要注意的是,Pod IP总是在变化。因此,一旦pod更新,此解决方案将会中断。

为什么一旦pod更新,你会认为这会破坏?只要您的pod IP在14.0.0.0/8范围内,它就可以正常工作,除非您已经定义了大于此范围的IP范围。

Pod IP由群集的容器地址范围设置定义,您可以在创建群集时通过gcloud container clusters create ...... --cluster-ipv4-cidr=${SOME_IP_RANGE}进行配置。