Может ли служба PostgreSQL в кластере OpenShift получать внешний трафик через открытый маршрут

Можно ли запустить PostgreSQL как службу внутри кластера OpenShift и получить внешний трафик к нему через открытый маршрут (рекомендуемый способ связи извне по умолчанию)?

Документация OpenShift 3.9 заявляет следующее:

Маршрутизатор настроен для приема внешних запросов и их прокси на основе настроенных маршрутов. Это ограничено протоколами HTTP / HTTPS (SNI) / TLS (SNI), которые охватывают веб-приложения.

PostgreSQL может использовать SSL, и его можно настроить для прослушивания порта 443 (HTTPS), но я думаю, что это пока не может выполнять SNI. Я бы запустил только один модуль позади службы, поэтому балансировка нагрузки не должна вызывать проблем. Если возможно, я буду ожидать подключения к кластеру и службе с psql -h ....


person rookie099    schedule 19.09.2018    source источник


Ответы (2)


Я пришел к (предварительному) выводу, что OpenShift переадресация портов (oc port-forward) предлагает лучший (ну ... :) путь вперед в этой ситуации.

person rookie099    schedule 19.09.2018

Вы можете создать LoadBalancer службу, которая создаст балансировщик нагрузки, предназначенный только для ваших модулей, и этот балансировщик нагрузки принимает трафик на основе TCP: https://docs.openshift.com/container-platform/3.9/admin_guide/tcp_ingress_external_ports.html#unique-external-ips-ingress-traffic-configure-service

Так что-то вроде

oc expose dc postgres --type=LoadBalancer --name=postgres-lb

Получил бы вам общедоступную базу данных PostgreSQL

person Will Gordon    schedule 19.09.2018
comment
Перспективно: теперь могу ping postgres-lb.my-cluster, но psql -h postgres-lb.my-cluster по-прежнему не работает (время ожидания соединения истекло). Файл журнала PostgreSQL молчит, поэтому я совершенно уверен, что это не проблема pg_hba.conf внутри контейнера. oc get svc сообщает PORT(S) 5432:30607/TCP о моих услугах. Вы действительно пробовали это с PostgreSQL и можете ли вы посоветовать дальнейшие действия? - person rookie099; 21.09.2018
comment
Я думал, что проблема может заключаться в том, что программно-определяемая сеть (SDN) OpenShift действует как брандмауэр и разрешает доступ только к портам контейнера 80 и 443. Я попытался разрешить PostgreSQL прослушивать порт 443, но это не удалось, потому что контейнер не должен запускаться с правами root. внутри OpenShift. Так что это все еще недоработанный раствор. - person rookie099; 21.09.2018