Minikube - доступ к портам хоста -- docker поле с участием kubernetes поле с участием minikube пол Связанный проблема

Minikube - access host machine's ports


-1
vote

проблема

русский

Я использую Minikube с помощью hyperkit драйвера, и мне нужно получить доступ к порту, открытому на хост-машина от стручка внутри кластера Minikube.

Есть 2 способа, которые я могу сделать это:

Переадресация портов

Порт вперед моего локального порта в <код> minikube ip :

 <код> ssh -i $(minikube ssh-key) docker@$(minikube ip) -R 8080:localhost:8080   

, а затем от POD я могу <код> curl 172.17.0.1:8080

Источник: https://medium.com/tarkalabs/proxying-servies -into-minikube-8355DB0065FD

IP локальной машины

с моего хозяина, я получаю мост Minikube IP: <код> ifconfig bridge100

 <код> bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500     options=3<RXCSUM,TXCSUM>     ether 8e:85:90:2d:d5:64     inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255   

, а затем с POD я могу <код> curl 192.168.64.1:8080

Однако я не уверен, что обе методы правильно. Есть ли способ статически ссылаться на хост-машина, чтобы иметь возможность доступа к открытым портам. Какое решение здесь?

Английский оригинал

I'm using minikube with hyperkit driver, and I need to access a port opened on the host machine FROM a pod inside the minikube cluster.

There are 2 ways I can accomplish this:

Port forwarding

Port forward of my local port to the minikube ip:

ssh -i $(minikube ssh-key) docker@$(minikube ip) -R 8080:localhost:8080 

And then from the pod I can curl 172.17.0.1:8080

source: https://medium.com/tarkalabs/proxying-services-into-minikube-8355db0065fd

Local machine's IP

From my host machine, I get the minikube's bridge IP: ifconfig bridge100

bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500     options=3<RXCSUM,TXCSUM>     ether 8e:85:90:2d:d5:64     inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255 

And then from the pod I can curl 192.168.64.1:8080

However, I'm not sure both methods are the right way. Is there a way to statically reference the host machine to be able to access open ports. What's the solution here?

</div
        
 
 

Список ответов

1
 
vote

Здесь слишком много слоев косвенного нарушения, и вам придется вводить IP-адрес физического хоста в контейнер в качестве переменной окружающей среды или настройки конфигурации. Типа ExternalName служба может также работать здесь.

Необходимая проблема здесь состоит в том, что каждый слой может узнать о слое сразу за пределами этого, но не дальше. У вас есть хост, запущенный VM, управляющий POD Kubernetes. POD может использовать downward api Чтобы найти IP-адрес своего узла, но в вашем случае, который будет VM, а не хост вокруг него.

(как параллельный вопрос: у вас есть обычный домашний маршрутизатор, который в 192.168.1.1, и ваша локальная система - 192.168.1.2. У вас есть какой-то сервер на маршрутизаторе. Между тем у вас есть VM, работающий в вашей локальной системе , который видит хозяин как 172.17.0.1, и считает, что это 172.17.0.2. Как VM достигает службы на маршрутизаторе, если он не знает о сети 192.168.1.0/24 в своей локальной сетевой среде?) < / P >.

 

There are too many layers of indirection involved here and you’ll have to inject the physical host’s IP address into the container as an environment variable or ConfigMap setting. An ExternalName type Service could also work here.

The essential problem here is that each layer can find out about the layer immediately beyond it, but no further. You have a host running a VM running a Kubernetes Pod. The Pod can use the downward API to find its Node’s IP address, but in your case that will be the VM and not the host around it.

(As a parallel question: you have an ordinary home router that’s 192.168.1.1, and your local system is 192.168.1.2. You’re running some server on the router. Meanwhile, you have a VM running on your local system, which sees the host as 172.17.0.1 and believes it is 172.17.0.2. How does the VM reach the service on the router, if it doesn’t know about the 192.168.1.0/24 network in its local network environment?)

</div
 
 

Связанный проблема

7  Докер: Какой подход лучше? Война встроен в изображение или базовое изображение + война?  ( Docker which approach is better war embedded in image or base image war ) 
только начал играть с докером. Чтобы развернуть войну на Tomcat, кажется, два подхода: Создать изображение с Java + Tomcat + War встроена в изображение У ...

3  Распределение приложения Docker Container для рабочего стола  ( Distributing docker container application for desktop environment ) 
Я разработал веб-приложение для конечных пользователей, которые находятся в docker контейнера. Сам контейнер принимает несколько python зависимости, неско...

1  Установите внешние файлы в докерный контейнер  ( Mount external files into docker container ) 
У меня есть приложение прогнозирования со структурой ниже папки: <код> Docker ├── dataset │   └── fastText │   └── crawl-300d-2M.vec ├── Dockerfile ├── ...

0  Как избежать # в Docker File?  ( How to escape in docker file ) 
У меня есть Docker Compose файл следующим образом: <код> Many3 Когда я попробую команду <код> Many4 команду не удается с ошибкой: <код> Many5 Причи...

3  Docker не может выполнить вход в систему против SSO / Федерации с помощью модулей Apache & Shibboleth  ( Docker unable to perform login against sso federation services via apache sh ) 
У меня есть частный реестр Docker, сидя за безопасным экземпляром Apache / Ubuntu в облаке Amazon. Apache обрабатывает корпоративную аутентификацию через моду...

0  Использование крепления связывания в Docker, чтобы иметь папку на хост-машине Windows, доступной для контейнера  ( Using a bind mount in docker to have a folder on windows host machine available ) 
Я пытаюсь получить настройку, где я могу развернуть контейнер Docker с приложением Java, установленным на нем, где приложение может записывать в папку в конте...

2  Запустите скрипт оболочки внутри контейнера  ( Run shell script inside a container ) 
Я использую lemonlatte / docker-webvirtmgr в качестве базового файла, но проблема в том, что нет ключей SSH, настроенных для пользователя www-data, поэтому я ...

-2  Дочсерская база данных ACCE отказано  ( Docker database acces denied ) 
<Сильные> Редактировать: Добавлен docker-compose.yml и pretix confe Привет всем . Я пытаюсь запустить pretix на моем сервере, используя это docker-compos...

2  Контейнер Docker с Jmeter Jenkins останавливается через некоторое время  ( Docker container with jmeter jenkins stops after some time ) 
Я пытаюсь интегрировать женкинс и jmeter внутри докера. Для этого я использую официальные jenkins docker-файл. Моя работа в Дженкинсах, начинает казнь JMeter....

3  Есть ли способ получить IP связанного контейнера, используя псевдоним ссылок?  ( Is there a way to obtain ip of linked container using link alias ) 
У меня есть два контейнера, одна ссылка на другую. Как следующее ... <код> docker run -i -t --name container1 ubuntu:trusty docker run -i -t --name contain...

0  DockerFile не будет запускать CMD должным образом или порты не подвержены  ( Dockerfile won%c2%b4t run cmd properly or ports are not exposed ) 
Я немного играю с DockerFiles. Поэтому я попробовал бежать Apache Nifi в Docker. Я знаю, что уже есть контейнер, это для обучения. Я настроил My DockerFile, к...

22  Как установить драйвер PDO в PHP Docker Image?  ( How to install pdo driver in php docker image ) 
Я использую в качестве основы php docker контейнер с тегом: <Код> php:5.6-apache Я связывал его с базовым <кодом> mysql:5.6 image, который я могу доб...

3  DockerFile для Tomcat  ( Dockerfile for tomcat ) 
Мне нужно создать изображение с настройками установки TOMCAT. Я пробовал много DockerFile в сети и попытался построить, но не повезет. Кто-нибудь скажет мне, ...

0  Закрыть порт докера, когда контейнер остановлен  ( Close docker port when container is stopped ) 
нужна помощь. Вот ситуация. Внутри контейнера Docker Существует сервис, который доступен через порт TCP. Есть еще одно приложение, написанное в .NET, что ...

3  Докерный контейнер недоступный от хозяина  ( Docker container inaccessible from host ) 
Я пытаюсь получить сервер приложений Tomcat, работающий на контейнере Docker. Сервер работает, но я не могу получить доступ к этому из хост-машины. Команда,...

Связанный проблема

7  Докер: Какой подход лучше? Война встроен в изображение или базовое изображение + война? 
3  Распределение приложения Docker Container для рабочего стола 
1  Установите внешние файлы в докерный контейнер 
0  Как избежать # в Docker File? 
3  Docker не может выполнить вход в систему против SSO / Федерации с помощью модулей Apache & Shibboleth 
0  Использование крепления связывания в Docker, чтобы иметь папку на хост-машине Windows, доступной для контейнера 
2  Запустите скрипт оболочки внутри контейнера 
-2  Дочсерская база данных ACCE отказано 
2  Контейнер Docker с Jmeter Jenkins останавливается через некоторое время 
3  Есть ли способ получить IP связанного контейнера, используя псевдоним ссылок? 
0  DockerFile не будет запускать CMD должным образом или порты не подвержены 
22  Как установить драйвер PDO в PHP Docker Image? 
3  DockerFile для Tomcat 
0  Закрыть порт докера, когда контейнер остановлен 
3  Докерный контейнер недоступный от хозяина