Локальное подключение Docker к кластеру Kubernetes - PullRequest
0 голосов
/ 28 июня 2018

Я хочу подключить Docker-контейнер, работающий локально, к службе, работающей в кластере Kubernetes. Для этого я предоставил сервис, зарезервировав несколько статических IP-адресов.

Я также сохранил эти IP-адреса в локальном DNS, в файле /etc/hosts/:

123.123.123.12 host1
456.456.456.45 host2 

Я хочу связать свой контейнер с таким, чтобы весь трафик направлялся на эти адреса, чтобы он мог обрабатываться кластером. Я использую функцию ссылки в контейнере Docker, но она не работает.

Я хочу подключиться напрямую по IP? Как мне это сделать?

1 Ответ

0 голосов
/ 29 июня 2018

Нет никакой разницы, если клиент находится в Docker или нет. Несмотря на то, что у вас есть служба , предоставляемая из Kubernetes , вы можете установить такое же подключение к ней из процесса, запущенного на внешнем хосте, или из процесса, запущенного в контейнере Docker на этом хосте.

Скажем, как в примере из документации Kubernetes, вы запускаете службу NodePort, которая доступна через порт 31496 на каждом узле кластера, и вы пытаетесь подключиться к нему извне кластера. Может быть, как в вопросе 123.123.123.12, это какой-то узел в кластере. Типичной установкой может быть получение местоположения сервиса из переменной среды (JavaScript process.env.THE_SERVICE_URL; Ruby ENV['THE_SERVICE_URL']; Python os.environ['THE_SERVICE_URL']; ...).

Когда вы разрабатываете, вы можете установить эту переменную в вашей локальной оболочке:

export THE_SERVICE_URL=http://123.123.123.12:31496
cd here && ./kubernetes_client_script.py

При развертывании приложения вы можете установить ту же переменную среды:

docker run -e THE_SERVICE_URL=http://123.123.123.12:31496 me:k8s-client
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...