Опубликовать порт в сети хоста Docker Swarm - PullRequest
0 голосов
/ 12 декабря 2018

Я создал кластер Docker Swarm с помощью docker-18.03.1-ce.

Когда я развертываю контейнер kafka, я вижу код в stack.yml так:

  kafka:
    image: wurstmeister/kafka:2.11-2.0.0
    ports:
      - target: 9094
        published: 9094
        protocol: tcp
        mode: host

Нов статье по сетевой архитектуре докера (https://success.docker.com/article/networking),) говорится: «С драйвером хоста Docker не управляет какой-либо частью сетевого стека контейнера, такой как сопоставление портов или правила маршрутизации. Это означает, что общие сетевые флаги, такие как -p и --icc не имеет значения для драйвера хоста. Они игнорируются. '

Я не уверен, вступят ли опубликованные порты в действие в сети хоста Swarm?

Кто-нибудь знает об этом?

1 Ответ

0 голосов
/ 12 декабря 2018

Я сам найду ответ из статьи по сетевой архитектуре докера (https://success.docker.com/article/networking):

При публикации портов в режиме хоста порты открываются только на хосте, на котором выполняются определенные сервисные задачи. Порт сопоставляется непосредственно сКонтейнер на этом хосте. Только одна задача данной службы может выполняться на каждом хосте для предотвращения конфликта портов.

$ docker service create --replicas 2 --publish mode=host,target=80,published=8080 nginx

режим хоста требует флага mode = host. Он публикует порт 8080 локально на хостахгде эти два контейнера работают. Он не применяет балансировку нагрузки, поэтому трафик к этим узлам направляется только в локальный контейнер. Это может вызвать коллизию портов, если для количества реплик недостаточно портов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...