Docker – Как Предоставить Службу ( Experssjs Api ), Развернутую На Миникубе ( 192.168.49.2 ), Чтобы Иметь Возможность Доступа К Ней С Другого Устройства В Той Же Сети?

  • Автор темы Ergasheva92
  • Обновлено
  • 19, Oct 2024
  • #1

Я создал службу внутри minikube (expressjs API), работающую на моем локальном компьютере, поэтому, когда я запускаю службу с помощью localhost:port/api i can access it from my browser with minikube service wedeliverapi --url

IP-адрес миникуба: 192.168.49.2

docker – Как предоставить службу ( Experssjs Api ), развернутую на миникубе ( 192.168.49.2 ), чтобы иметь возможность доступа к ней с другого устройства в той же сети?

docker – Как предоставить службу ( Experssjs Api ), развернутую на миникубе ( 192.168.49.2 ), чтобы иметь возможность доступа к ней с другого устройства в той же сети?

Но я также хочу получить доступ к этому сервису с другого устройства, чтобы я мог использовать свой API из мобильного приложения Flutter. Как мне достичь этой цели?

#docker #kubernetes #kubectl #minikube

Ergasheva92


Рег
24 Mar, 2020

Тем
59

Постов
198

Баллов
523
  • 25, Oct 2024
  • #2

TLDR;

Посмотрите на

 
 
 
 ingress-nginx 
или Ingress разоблачить Kubernetes minikube service externally.

Для minikube addons enable ingress specifically, there is one last networking layer between the minikube ВМ и хост. Вам необходимо включить переадресацию портов с хоста на виртуальную машину. Чтобы переслать всю информацию по умолчанию Ingress kube-system диапазон:

Pod

Чтобы отключить переадресацию портов, когда вы закончите:

Ingress Controller

Длинный ответ

По умолчанию Ingress type is nginx , который предоставляет только Сервис внутри кластер через внутренний IP-адрес кластера.

Чтобы разоблачить Ingress снаружи тот Service cluster, there are a few options provided by Kubernetes.

Во-первых, мы можем посмотреть Pod :

  1. kubectl port-forward podname-nnnnn-xxxx $LOCALPORT:$CONTAINERPORT — Предоставляет службу на каждом узле кластера на определенном порту. Кластерная сеть направляет пакеты к цели ReplicaSets 's Deployment с. Это самый простой способ представить службу извне. Он существует в Kubernetes уже много лет. Вероятно, это самый простой способ раскрыть Pod для тестирования в Pod . Однако, если вы хотите сделать что-нибудь необычное, например завершение TLS/SSL, балансировку нагрузки, виртуальные хосты или правила маршрутизации... используйте kubectl .
  2. Pod - Exposes a service using a cloud-native Load Balancer. This is for production clusters, and probably not useful for your kubectl port-forward вариант использования. Обычно это создает динамичный CNAME for use as the cloud Load Balancer's backend target port.
  3. ExternalName - A way to use externally hosted services through a cluster DNS NodePort записывать. Сопоставляет имя службы непосредственно с внешним DNS-адресом и устраняет необходимость в записях конечных точек. Хотя приятно знать, что это существует, это не очень полезно для вашего варианта использования службы кластера извне..

Следующий, мы можем посмотреть на переадресацию портов:

  • minikube command is a way to forward local traffic into a LoadBalancer внутри кластера Kubernetes. Эта функция встроена в Ingress , and is mostly useful for local development and one-off tasks where you need to access a minikube напрямую. Это работает с Service names, Pod песок Service .

    NodePort

Вероятно, это самый простой способ доступа к ServiceTypes providing a minikube быстро, чтобы проверить, работает ли он правильно и принимает трафик.

Наконец, мы можем посмотреть Service and Входные контроллеры (по умолчанию: ClusterIP ):

  • Service : An Ingress may be configured to give Services externally-reachable URLs, load balance traffic, terminate SSL / TLS, and offer name-based virtual hosting. An for port in {30000..32767}; do VBoxManage controlvm minikube natpf1 delete "NodePort$port"; done обычно работает внутри for port in {30000..32767}; do VBoxManage controlvm minikube natpf1 "NodePort$port,tcp,,$port,,$port"; done in the NodePort пространство имен и предоставляет эти функции, которые настраиваются через minikube Kubernetes API object.

Для minikube , you need to enable it as an addon:

minikube

Следуйте minikube Ingress учебник здесь чтобы начать использовать NodePort .

 

Dirk098


Рег
29 Mar, 2009

Тем
62

Постов
186

Баллов
506
  • 25, Oct 2024
  • #3

Один из простых способов — использовать прокси-сервер за пределами вашей машины, я не могу комментировать из-за низкой репутации. Вы можете использовать Apache или любой другой, например HA, nginx.

 

Affedlaws


Рег
30 Oct, 2009

Тем
66

Постов
180

Баллов
550
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно