Доступ к перенаправленным портам OpenShift с удаленного хоста - PullRequest
0 голосов
/ 02 октября 2018

Я хотел бы подключиться к кластеру PostgreSQL (9.6), который работает внутри OpenShift (3.9), используя переадресацию портов, как описано здесь .С этой целью я настроил и проверяю правильность переадресации портов на хосте-перемычке (вне кластера OpenShift) следующим образом:

oc port-forward $pod 5432:5432
netstat -ln | grep 5432 # "tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN"
psql -U postgres -h localhost # OK
psql -U postgres -h $(hostname -i) # error: "connection refused"

Таким образом, выглядит так, как будто переадресация портов прослушивает только localhost, но недругой IP-адрес хоста.В конечном итоге я хочу подключиться к базе данных через хост перехода с других удаленных хостов, поэтому «localhost» будет недостаточно.

Как настроить переадресацию портов (OpenShift) таким образом, чтобы это позволилодоступ к перенаправленному порту также с удаленных хостов?Я полагаю, что Iptables (в сочетании с переадресацией портов OpenShift) мог бы добиться цели, но я пока не знаю, как и если есть более простой подход.(Хост перехода работает под управлением Debian 9.5.)

UPDATE Подход, сочетающий туннель SSH и переадресацию портов OpenShift (Kubernetes), по-видимому, может решить эту проблему.Это было предложено в ссылке, приведенной в принятом ответе ниже.

на хосте перехода (1-й сеанс):

ssh -N -L $(hostname -i):5432:localhost:5433 $(whoami)@$(hostname)

на хосте перехода (2-й сеанс):

oc port-forward $pod 5433:5432

на удаленном хосте:

psql -U postgres -h jump-host

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы можете найти достойное обсуждение адресов прослушивания переадресации портов и нескольких временных решений для https://github.com/kubernetes/kubernetes/issues/43962 и https://github.com/kubernetes/kubernetes/pull/46517.

После того, как PR объединен, передан в восходящем kubernetes и обновлениях openshift к этомуверсия, у вас будет простой способ достичь этого (я бы предположил минимум полгода с тех пор).Пока вы застряли с обходными путями.

0 голосов
/ 02 октября 2018

Лично я думаю, что port-forward разрешает только локальный доступ [0], так что нет более простого способа, чем вы сказали.Даже если удаленный доступ можно включить, но вы должны настроить iptables для разрешения порта 5432 на node.Поэтому, если вы хотите получить доступ к Pod с пульта дистанционного управления, вы должны использовать Route или Service, как между Pods.

[0] Переадресация портов

You can use the CLI to forward one or more local ports to a pod. This allows you to listen on a given or random port locally, and have data forwarded to and from given ports in the pod.
...