从哪个源-IP范围开始出现来自Pods的出站连接?

时间:2017-05-26 13:41:23

标签: azure kubernetes azure-container-service azure-database-postgresql

我想建立从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范围吗?

2 个答案:

答案 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中。