Портовая рыбалка в Кубернете - PullRequest
0 голосов
/ 04 февраля 2020

Я знаю, что в kubernetes мы не можем использовать порт узла службы ниже 30000, потому что эти порты используются kubernetes. Могу ли я использовать "kubectl port-forward svc / someservice 80:80", например ... не вызывая конфликта с портами kubernetes ниже 30000?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Не могли бы вы описать, в чем причина такой настройки?

kubectl port-forward svc/someservice 80:80 просто перенаправляет ваш local_machine: 80 на порт: 80 конечных точек для некоторой службы.

Другими словами, соединения, сделанные с локальным портом 80, перенаправляются на порт 80 модуля, на котором выполняется ваше приложение. С этим подключением вы можете использовать свою локальную рабочую станцию ​​для отладки приложения, работающего в модуле.

Из-за известных ограничений, перенаправление портов сегодня работает только для протокола TCP. Поддержка протокола UDP отслеживается в выпуске 47862 .

На данный момент (февраль-2020) проблема все еще открыта.

Узел Порт используется для совершенно разных вещей. Он используется в тех случаях, когда вы должны достичь пакетов, отправив трафик c на определенный порт на любом узле в вашем кластере.

Вот почему ответ на ваш вопрос «Определенно вы можете сделать это»; однако, как я уже говорил, не ясно, зачем вам это делать. Без этой информации трудно дать руководство о том, «как лучше всего достичь требуемой функциональности»

Надеюсь, что это поможет.

0 голосов
/ 04 февраля 2020

Короче говоря - да, вы можете.

В вашем вопросе ясно, что вам не хватает понимания типа услуги NodePort и того, что в сущности делает kubectl port-forward.

kubectl port-forward не отправляет трафик c через порт, определенный в разделе .spec.type: NodePort в ресурсе Service. Фактически, используя kubectl port-forward, вы можете настроить таргетинг на тип сервиса ClusterIP (который по определению не имеет строфа .spec.type: NodePort).

...