Как получить доступ к pod снаружи моего кластера в kubernetes? я выставил его как службу порта узла, но не могу получить к нему доступ через порт этого узла

Я создал модуль для своего java-приложения и выставил его как службу порта узла.
Я могу получить к нему доступ, используя curl masteraddress:nodeport только внутри кластера, а не снаружи (скажем, мой браузер).
Цель службы порт-узел состоит в том, чтобы разрешить внешний доступ к модулям, верно? тогда почему не можете получить к нему доступ.

kubernetes версия v1.13,
Бег в облаке цифрового океана.

Ожидаемый результат: nodeaddress: nodeport должен работать внешне

выход для kubectl describe svc <svc>

РЕДАКТИРОВАТЬ:
Я использовал секрет, чтобы вытащить образ докера из моего частного концентратора, это вызовет какие-то проблемы?

5 ответов

Решение

Просто попробуйте найти IP-адрес рабочего узла, на котором работает ваш модуль.
менять master-address:nodeport в workernode-address:nodeportу меня сработало:)

Вместо этого с помощью NodePort измените его на балансировщик нагрузки и получите прямой доступ к нему по IP-адресу балансировщика нагрузки. Или вы можете сделать входной контроллер, который сделает один вход, и вы можете перенаправить и выставить службы

используя вход и балансировщик нагрузки типа сервиса, вы можете получить доступ к приложению вне

Проверьте, обслуживает ли порт узла ваше приложение на хосте: netstat -tunpl | grep "your node port" а также с локальным адресом как 0.0.0.0 или ваши машины IP,

Если вы уверены, что все правильно и работает, проверьте, не заблокирован ли порт правилами брандмауэра, и откройте его для внешнего трафика.

Как видно из вашего вывода, ваш селектор стручков неверен. Ваш вывод должен быть что-то вроде

Nodeport: "метка селектора" 31605/TCP

У вас есть "unset", поэтому этот нодпорт не связан ни с чем.

У меня есть пример нодпорта в моем блоге.

Другие вопросы по тегам