如何仅允许访问postgresql中的kubernetes窗格?
问题描述:
我有一个Django应用程序在GKE的Kubernetes中运行。该django应用程序连接到一个静态(非集装箱)postgresql服务器。由于它们都位于一个区域中,我的django应用程序使用内部IP连接到数据库。如何仅允许访问postgresql中的kubernetes窗格?
我只希望我的Django的应用请求到PostgreSQL数据库的连接,并拒绝来自其他IP地址来请求连接。
要做到这一点,在pg_hba.conf
我这样做:
host all all 14.133.0.0/24 md5
因为所有内部IP与14.133
开始。但是,请求来自pod IP,因此连接请求被拒绝。
用于波德IP的示例可以是14.4.123.32
。所以,如果我这样做在pg_hba.conf
,这个问题将是固定的:
host all all 14.0.0.0/8 md5
另一个要注意的是,波德IP地址随时更改。因此,该解决方案将在更新吊舱后中断。
最好的做法是什么?
答
另一个要注意的是,波德IP地址随时更改。因此,该解决方案将在更新吊舱后中断。
为什么你认为这将打破一旦吊舱更新?只要你的pod IP在14.0.0.0/8范围内,它应该可以正常工作,除非你定义了一个大于这个范围的IP范围。
Pod IP由定义容器地址范围集群的设置,您可以在创建集群时通过gcloud container clusters create ...... --cluster-ipv4-cidr=${SOME_IP_RANGE}
进行配置。