Из какого диапазона исходного IP-адреса исходящие соединения от модулей появляются?
Я хочу установить соединения из кластера kubernetes (созданного с помощью az acs create
в основном с настройками по умолчанию) для экземпляра Azure Postgresql, и я хотел бы знать, какой диапазон исходных IP-адресов ввести в postgres HBA (это то, что Azure называет firewall-rule
под az postgres server
).
Дело в том, хотя я вижу из консоли ошибки (при использовании psql
проверить) каков текущий IP, из которого поступают запросы кластера
FATAL: no pg_hba.conf entry for host "x.x.x.x" [...]
... Я просто не вижу этот IP-адрес нигде в свойствах кластера - и в любом случае, это может показаться очень хрупкой конфигурацией, чтобы просто внести белый список в этот IP-адрес, не зная, как он назначен.
(На портале Azure я вижу один "общедоступный IP-адрес", связанный с мастером кластера, но это не то же самое, что IP-адрес, видимый postgres, и, я полагаю, в основном для входа.)
Итак, в идеале, ACS позволяет мне контролировать исходящие IP-адреса для кластера? А если нет, могу ли я программно определить, какой IP или диапазон IP разрешен?
2 ответа
Это должен быть внешний 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>
ACS позволяет мне управлять исходящими IP-адресами для кластера? А если нет, могу ли я программно определить, какой IP или диапазон IP разрешен?
Насколько я знаю, служба контейнеров Azure предоставляет общедоступное приложение-докер через балансировщик нагрузки Azure, а балансировщик нагрузки получает общедоступный IP-адрес.
Кстати, мы не можем указать, какой общедоступный IP-адрес будет связан с балансировщиком нагрузки Azure.
После того, как мы сможем представить приложение в Интернете, мы можем добавить общедоступный IP-адрес в ваш Postgresql HBA postgres.