Ответ 1
Я считаю, что это обсуждается прямо сейчас (на прошлой неделе в 2016 году) в PR 25414, где контейнерные сети в создании службы изначально сообщаются как
Контейнеры, предоставляемые в режиме роуминга в докере, могут быть доступны при обнаружении службы либо через виртуальный IP (VIP), либо через сеть оверлейного входа докеров. Или через DNS round robbin (DNSRR)
Но Чарльз Смит (sfsmithcha
) добавляет:
VIP не входит в входящую сеть. Чтобы использовать VIP или DNSRR, вам необходимо создать пользовательскую оверлейную сеть. (См. PR 25420)
Мы не должны конфликтовать вход, который является (-публичным портом) с сетью с внутренним оверлеем.
Иллюстрация Чарльза о присутствии VIP (docs/swarm/networking.md
)
Режим рока Docker Engine изначально поддерживает оверлейные сети, поэтому вы можете активировать сети "контейнер-контейнер".
Когда вы используете режим swarm, вам не нужно хранить внешний ключ.Особенности сетей оверлейного режима роя включают следующее:
- Вы можете подключить несколько сервисов к одной и той же сети.
- По умолчанию служба обнаружения назначает виртуальный IP-адрес (VIP) и запись DNS для каждой службы в рое, предоставляя ее доступным по имени своей службы контейнерам в той же сети.
- Вы можете настроить службу на использование циклического DNS-сервера вместо VIP.
Использовать обнаружение службы режима роя
По умолчанию при создании службы, подключенной к сети, рой назначает услугу VIP. VIP отображает псевдоним DNS на основе имени службы. Контейнеры в сети обмениваются сопоставлениями DNS для службы с помощью сплетен, поэтому любой контейнер в сети может обращаться к сервису через его имя службы.
Вам не нужно выставлять порты, зависящие от конкретной службы, чтобы сделать услугу доступной для других служб в одной и той же сети оверлея.
Внутренний балансировщик роя автоматически распределяет запросы к VIP-сервису среди активных задач.
OP настаивает:
По-прежнему не удается получить причину, по которой VIP прикреплен к контейнеру eth0...
Ну:
- Интерфейс eth0 представляет собой интерфейс контейнера, который подключен к оверлейной сети. Поэтому, если вы создаете оверлейную сеть, у вас будут связанные с ней VIP.
- Интерфейс eth1 представляет интерфейс контейнера, который подключен к сети
docker_gwbridge
, для внешней связи вне кластера контейнеров.
Теперь issue 25325 рассказывает о балансировке нагрузки Docker 1.12, не постоянно работающей, где таблица IPVS неправильно заполняется.
Это иллюстрирует роль этих ipv, и ошибка должна быть исправлена в 1.12.1-rc1.