我在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更新,此解决方案将会中断。
最佳做法是什么?
答案 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}
进行配置。