Как получить доступ к 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", поэтому этот нодпорт не связан ни с чем.