Контейнер Rancher принимает IP-адрес хоста - PullRequest
0 голосов
/ 27 марта 2019

У меня есть 2 IP-адреса в хосте ранчо (centos): 1.1.1.1 и 2.2.2.2

1.1.1.1 - это IP-адрес, который я хочу использовать для доступа к интерфейсу ранчера и SSH на хосте.

Я хочу использовать 2.2.2.2 для доступа к контейнерам для приложения. У меня есть 2 контейнера, один nginx и один ssh. Я настроил контейнеры для использования hostport 80, сопоставленного с 2.2.2.2:80 и 22 с hostport 2.2.2.2:22.

Я также изменил команду запуска по умолчанию для контейнера ранчера для прослушивания порта 80 и 443 IP 1.1.1.1

Если я захожу в браузер и захожу на 1.1.1.1, я вижу ожидающего ранчера, а если я захожу на 2.2.2.2, я вижу свое приложение-контейнер, как и ожидалось.

Однако, если я пытаюсь получить доступ к 1.1.1.1:22, я заканчиваю тем, что подключился к контейнеру ssh, который должен только слушать 2.2.2.2:22.

Я что-то здесь упускаю? Это проблема конфигурации хоста или контейнера? Может ли контейнер получить доступ к чему-то, о чем он даже не должен знать?

UPDATE

Позвольте мне попытаться уточнить настройки:

Rancher работает на хосте с 2 IP-адресами. Когда я запускаю rancher, я выполняю следующую команду, поэтому она привязывается к первому IP-адресу:

docker run -d --volumes-from rancher-data --restart=unless-stopped -p 1.1.1.1:80:80 -p 1.1.1.1:443:443 rancher/rancher
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.7 --server https://rancher1.my.tld --token [token] --ca-checksum [checksum] --etcd --controlplane --worker

В интерфейсе ранчера настроено 4 контейнера, которые я хочу указать на 2.2.2.2:22 и 2.2.2.2:80, 2.2.2.2:2222 и 2.2.2.2:8080

Это 2 среды для приложения. 22 и 80 являются контейнерами nginx и ssh для среды LIVE (разделяя объем данных между ними) и то же самое для 2222 и 8080, причем для среды QA. Я использую контейнер ssh для загрузки содержимого в контейнер nginx через общий объем данных.

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

ОБНОВЛЕНИЕ 2

Вот скриншот из настроек отображения портов в контейнере: https://snag.gy/idTjoV.jpg

Контейнерный порт 22, сопоставленный с IP 2.2.2.2:222

Если я установлю это на 2.2.2.2:22, SSH к хосту перестанет работать, и вместо него будут установлены ssh-соединения с контейнером.

...