Как подключиться к сервисам minikube извне

Я пытаюсь переключить локальную среду разработки на работу в minikube. У меня есть все созданные образы контейнеров, и у меня есть все конфигурации YAML, и у меня есть все службы, которые мне нужны, и я могу получить к ним доступ, используя URL-адрес, возвращенный из minikube service web --url (web - это имя моего фронтального сервера nginx). Но есть одна вещь, которую я не смог понять. Для проекта, над которым я работаю, требуются интеллектуальные внешние устройства, взаимодействующие с серверной частью. У меня на скамейке есть несколько устройств, подключенных к локальной сети, но я не могу понять, как открыть доступ к сервисам, работающим внутри minikube, извне, т.е. чтобы устройство могло подключиться к сервису, используя внешний IP-адрес моего ноутбука. Есть стандартный способ сделать это?

Изменить: я попытался настроить вход для своей службы. Вот моя конфигурация входа.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web
spec:
  backend:
    serviceName: web
    servicePort: 80

Веб-служба доступна через команду minikube service web и представлена ​​как тип NodePort. Все, что я получаю, это «бэкэнд по умолчанию 404», когда я пытаюсь получить доступ к входу. С другой стороны, даже если бы это сработало, у меня все равно была бы проблема, поскольку входящий доступ раскрывает службу во внутренней подсети виртуальной машины и недоступен извне хост-машины. Я начинаю рассматривать возможность запуска какого-либо прокси или ускорителя для пересылки вещей с хоста на виртуальную машину minikube. Чтобы иметь постоянную конечную точку для прокси-сервера, по-прежнему требуется, чтобы вход был запущен.


person Mad Wombat    schedule 12.09.2017    source источник


Ответы (2)


Есть несколько способов. Но так я нашел решение.

~ → ????  $ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

Здесь мы можем подключиться к сервису, используя 192.168.99.100 и nodeport. Скажем, для Dashboard с портом узла 30000 URL будет: http://192.168.99.100:30000/

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

~ → ????  $ kubectl get svc --all-namespaces
person Vikash Singh    schedule 05.09.2018
comment
Я задал этот вопрос год назад, поэтому у меня нет такой же готовой установки. Но я не думаю, что ваше решение работает. Minikube запускает все на виртуальной машине. Таким образом, даже если у службы есть NodePort, порт, которому она сопоставляется, находится на виртуальной машине, а не на физической. Это именно то, что говорит ваш вывод pointing to minikube-vm at 192.168.99.100. Виртуальная машина minikube недоступна извне с машины, на которой она работает. - person Mad Wombat; 07.09.2018

Используйте надстройку для Minikube, например, см. это сообщение в блоге о том, как его настроить и использовать .

person Michael Hausenblas    schedule 12.09.2017
comment
Это не в точности выполняет то, что просил плакат, поскольку (если кто-то не изменил minikube) он будет прослушивать только сеть virtualbox hostonly, которая делает именно то, что говорит: доступна только для хоста. Конечно, должно быть возможно использовать мостовую сеть virtualbox, чтобы minikube получил IP-адрес локальной сети, но по умолчанию он точно не делает этого. - person mdaniel; 12.09.2017
comment
Вы правы, @MatthewLDaniel, и, возможно, стоит отметить, что можно использовать, например, решение, показанное в: stackoverflow.com/questions/39850819/, если требуется доступ извне машины. - person Michael Hausenblas; 12.09.2017
comment
Да, устройство подключения является внешним по отношению к машине, на которой запущен minikube. - person Mad Wombat; 12.09.2017
comment
Я читал об входах. Во-первых, все мои попытки подписаться на документы kube и средний пост потерпели неудачу. Я могу получить доступ к своей службе с помощью команды minikube service, но не через вход. И, как упоминалось в приведенных выше комментариях, вход по-прежнему выполняется внутри виртуальной машины minikube и по-прежнему недоступен извне системы разработки. - person Mad Wombat; 13.09.2017