3

我想设置从 kubernetes 集群(通过az acs create大多数默认设置创建)到 Azure Postgresql 实例的连接,并且我想知道在 postgres HBA 中输入的源 IP 范围(这是 Azurefirewall-ruleaz 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 范围吗?

4

2 回答 2

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>
于 2017-05-28T08:16:11.223 回答
0

ACS 是否让我控制集群的出站 IP 地址?如果没有,我可以通过编程方式找出允许的 IP 或 IP 范围吗?

据我所知,Azure 容器服务通过Azure 负载均衡器向公众公开 docker 应用程序,负载均衡器将获得一个公共 IP 地址。
顺便说一句,我们无法指定哪个公共 IP 地址将关联到 Azure 负载均衡器。

在我们可以将应用程序公开到 Internet 之后,我们可以将公共 IP 地址添加到您的 Postgresql 的 postgres HBA。

于 2017-05-29T08:38:12.487 回答