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

我有一个在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总是变化的。 所以,这个解决scheme一旦更新吊舱就会中断。

什么是最好的做法呢?

另外要注意的是,Pod IP总是变化的。 所以,这个解决scheme一旦更新吊舱就会中断。

为什么你认为一旦更新吊舱,这将会中断? 只要你的pod IP在14.0.0.0/8范围内,它应该可以正常工作,除非你已经定义了一个比这更大的IP范围。

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