Доступ к кластеру kubernetes снаружи хост-машины через порт 80 - PullRequest
0 голосов
/ 05 января 2019

Итак, вместо того, чтобы объяснять архитектуру, я рисую вам картину сегодня :) Я знаю, это 1/10.

Забыл нарисовать и это, это кластер с одним узлом

Надеюсь, это сэкономит вам время. Вероятно, также легче увидеть, где моя борьба, поскольку я разоблачаю отсутствие понимания.

Итак, в двух словах:

Что работает:

  • Я могу свернуть каждый вход через виртуальные хосты с внутри сервера, используя curl -vH 'host: host.com' http://192.168.1.240/articleservice/system/ipaddr

  • Я могу получить доступ к серверу


Что не работает:

  • Я могу не получить доступ к кластеру из снаружи .

Почему-то я не могу решить это сам, хотя я много читал и много помогал. Поскольку у меня есть проблемы с этим в течение некоторого периода времени, теперь откровенные ответы действительно приветствуются.

architecture

1 Ответ

0 голосов
/ 06 января 2019

Как правило, вы не можете получить доступ к своему кластеру извне, не раскрывая службу. Вам следует изменить тип службы «Ingress Controller» на NodePort и позволить kubernetes назначить порт для этой службы.
вы можете видеть порты, назначенные для сервиса, используя kubectl get service ServiceName.
теперь возможно получить доступ к этой службе с внешней стороны на http://ServerIP:NodePort, но если вам нужно использовать стандартные порты HTTP и HTTPS, вы должны использовать обратный прокси-сервер вне кластера для передачи трафика с порта 80 на NodePort, назначенного для Ingress Controller Service .
Если вам не нравится добавлять обратный прокси-сервер, можно добавить externalIPs к службе контроллера Ingress, но таким образом вы потеряете RemoteAddr в ваших конечных точках и вместо этого получите IP-адрес модуля входного контроллера. externalIPs может быть списком ваших публичных IP-адресов

Вы можете найти полезную информацию об услугах и доступе по следующим ссылкам:
Услуги Kubernetes

Nginx Ingress - соображения по поводу голого металла

...