Рейтинг:-1

(Kubernetes) Перенаправление портов с порта NodePort на порт за пределами его диапазона

флаг in

У меня есть модуль, который работает в Kubernetes на локальном компьютере (мой Mac) и определен как доступный через nodePort 30036.

  - протокол: TCP
    целевой порт: 8081
    порт узла: 30036

Я хотел бы иметь доступ к этому узлу, используя порт за пределами диапазонов, которые были определены для использования nodePort (30000-32768). Что-то вроде 8080. Каковы мои варианты? Спасибо!

Рейтинг:0
флаг cn

Поскольку нет информации о точном используемом решении Kubernetes, может быть сложно определить точное решение.

Предположим, что есть 2 варианта:

  • Рабочий стол Docker с Kubernetes
  • Миникуб

Некоторыми решениями для них могут быть:


Рабочий стол Docker с Kubernetes

Оказание услуг типа LoadBalancer

Ваш кластер Kubernetes может использовать Оказание услуг типа LoadBalancer и получите ссылку на свой локальный хост (ваш Mac локальный хост).

Вы можете проверить это, запустив следующий пример:

  • $ kubectl создать развертывание nginx --image=nginx
  • $ kubectl выставить развертывание nginx --port=80 --type=LoadBalancer
  • $ kubectl получить услуги
НАЗВАНИЕ ТИП КЛАСТЕР-IP ВНЕШНИЙ-IP ПОРТ(Ы) ВОЗРАСТ
kubernetes ClusterIP 10.96.0.1 <нет> 443/TCP 10d
nginx LoadBalancer 10.111.214.48 локальный хост 80:30032/TCP 77s
  • завиток 127.0.0.1:80 / завиток kubernetes.docker.internal:80
<-- REDACTED --> 
<title>Welcome to nginx!</title>
<-- REDACTED --> 

Дополнительное замечание!

Вы можете изменить его дальше, используя --порт (порт на вашем локальный хост) и --targetPort (порт, который слушает в вашем Стручок) параметры при использовании $ kubectl выставить ...

Изменить NodePort диапазон портов

Вы можете следовать этому подробному ответу, который покажет вам, как вы можете изменить свой kubeapi-сервер изменить NodePort диапазон портов (путем входа в Docker VM):

Использовать Вход контроллер

Вы также можете использовать Вход контроллер, который будет привязан к вашему Mac локальный хост и позволит вам использовать Вход ресурс (это в основном для HTTP/HTTPS но с некоторыми корректировками может пройти TCP/UDP трафик). Здесь вы можете найти больше информации по этой теме:


Миникуб

С Миникуб может быть много вариаций из-за --Водитель использовал.

Изменить NodePort диапазон портов

Еще раз вы можете следовать приведенному ниже ответу, чтобы изменить миникуб NodePort диапазон портов:

Использовать металлфунт

Вы также можете использовать металлфунт выделить адреса для вашего Оказание услуг типа LoadBalancer.

Шаги для этого будут следующими:

  • $ minikube start --driver=hyperkit
  • Аддоны $ minikube позволяют использовать металлб
  • список узлов $ minikube (обратите внимание на IP-адрес вашего миникуб)
  • Аддоны $ minikube настраивают metallb (поместите выделенный диапазон рядом с миникуб айпи как:
    • IP-адрес миникуба: 192.168.64.11
    • начало металла: 192.168.64.100
    • металлический конец: 192.168.64.110
  • Создайте рабочую нагрузку и выставьте ее с помощью Оказание услуг типа LoadBalancer
  • $ curl SVC_EXTERNAL_IP:ПОРТ

Дополнительное замечание!

--driver=гиперкит был использован из-за:

Поскольку вы используете драйвер Docker на Darwin, терминал должен быть открыт для его запуска.

Это сообщение связано с доступом к вашему миникуб экземпляр при использовании --driver=докер и это ограничения. Вам нужно использовать служба minikube SERVICE_NAME чтобы получить доступ к Оказание услуг (и терминал должен быть запущен, пока вы на нем).


Дополнительное замечание!

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

Дополнительные ресурсы:

moonkotte avatar
флаг in
Здравствуйте @pavel-zagalsky. Это [ответит на ваш вопрос] (https://stackoverflow.com/help/someone-answers)?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.