我想建立从kubernetes集群(通过az acs create
创建,主要是默认设置)到Azure Postgresql实例的连接,我想知道在postgres HBA中输入什么source-IP范围(这就是Azure在firewall-rule
下调用az postgres server
的内容。
问题是,虽然我可以从控制台错误中看到(当使用psql
进行测试时)群集请求来自的当前IP是什么
FATAL: no pg_hba.conf entry for host "x.x.x.x" [...]
...我只是在群集属性中的任何地方都看不到这个IP地址 - 无论如何,将这个IP地址列入白名单而不知道它是如何分配的,这似乎是一个非常脆弱的配置。
(在Azure门户中,我确实看到一个与群集主服务器关联的“公共IP”,但这与postgres看到的IP不同,我认为主要是针对入口。)
理想情况下,ACS是否允许我控制群集的出站IP地址?如果没有,我可以通过编程方式找出允许的IP或IP范围吗?
答案 0 :(得分:1)
它应该是安排pod的节点的外部IP,例如在容器引擎上:
$ kubectl get no -o wide
NAME STATUS AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION
gke-cluster-1-node-1 Ready 58d v1.5.4 <example node IP> Container-Optimized OS from Google 4.4.21+
$ ssh gke-cluster-1-node-1
$ curl icanhazip.com
<example node IP>
$ kubectl get po -o wide | grep node-1
example-pod-1 1/1 Running 0 11d <pod IP> gke-cluster-1-node-1
$ kubectl exec -it example-pod-1 curl icanhazip.com
<example node IP>
答案 1 :(得分:0)
ACS让我控制群集的出站IP地址吗?和 如果没有,我可以通过编程方式找出IP或IP范围 允许?
据我所知,Azure容器服务通过 Azure负载均衡器将docker应用程序公开给公众,负载均衡器将获得一个公共IP地址。
顺便说一下,我们无法指定哪个公共IP地址将与Azure负载均衡器关联。
我们可以将应用程序暴露给互联网后,我们可以将公共IP地址添加到Postgresql的postgres HBA中。