Доступ к Docker Swarm возможен только на узлах, где работает контейнер

В настоящее время я использую Docker Swarm на 3 узлах. Сначала я создал сеть как

docker network create -d overlay xx_net

после этого услуга как

docker service create --network xxx_net --replicas 1 -p 12345:12345 --name nameofservice nameofimage:1

Если я правильно прочитал, это сетка маршрутизации (для меня это нормально). Но я могу получить доступ к сервису только на том узле ip, где работает контейнер, даже если он должен быть доступен на каждом узле ip.

Если я дренирую какой-то узел, контейнер запускается на другом узле, а затем он становится доступным на новом ip.


** дополнительная информация добавлена ​​ниже здесь:

  • Я перезагрузил все серверы - 3 рабочих, где на одном из них находится менеджер
  • после загрузки все вроде работает нормально!
  • Я использую rabbitmq-образ из докера. Dockerfile довольно маленький: FROM rabbitmq:3-management Контейнер запущен на рабочем 2
  • Я могу подключиться к странице управления rabbitmq со всех работников: worker1-ip:15672, worker 2-ip:15672, worker3-ip:15672, поэтому я думаю, что все необходимые порты открыты.
  • примерно через 1 час rabbitmq-контейнер был перемещен с рабочего 2 на рабочий 3 - я не знаю причину.
  • после этого я больше не могу подключиться с worker1-ip: 15672, worker 2-ip: 15672, но с worker3-ip: 15672 все по-прежнему работает!
  • Я слил worker3 как docker node update --availability drain worker3
  • контейнер запущен на worker1.
  • после этого я могу подключиться только с worker1-ip: 15672, а не с worker 2 или worker3

Еще один тест: все докеры перезапускаются на всех рабочих, и все снова работает?! - давайте подождем несколько часов...

Сегодняшний статус: 2 из 3 узлов работают нормально. На сервисном журнале менеджера:

Jul 12 07:53:32 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:53:32.787953754Z" level=info msg="memberlist: Marking dockerswarmworker2-459b4229d652 as failed, suspect timeout reached"
Jul 12 07:53:39 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:53:39.787783458Z" level=info msg="memberlist: Marking dockerswarmworker2-459b4229d652 as failed, suspect timeout reached"
Jul 12 07:55:27 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:55:27.790564790Z" level=info msg="memberlist: Marking dockerswarmworker2-459b4229d652 as failed, suspect timeout reached"
Jul 12 07:55:41 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:55:41.787974530Z" level=info msg="memberlist: Marking dockerswarmworker2-459b4229d652 as failed, suspect timeout reached"
Jul 12 07:56:33 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:56:33.027525926Z" level=error msg="logs call failed" error="container not ready for logs: context canceled" module="node/agent/taskmanager" node.id=b6vnaouyci7b76ol1apq96zxx
Jul 12 07:56:33 dockerswarmmanager dockerd[7180]: time="2017-07-12T07:56:33.027668473Z" level=error msg="logs call failed" error="container not ready for logs: context canceled" module="node/agent/taskmanager" node.id=b6vnaouyci7b76ol1apq96zxx
Jul 12 08:13:22 dockerswarmmanager dockerd[7180]: time="2017-07-12T08:13:22.787796692Z" level=info msg="memberlist: Marking dockerswarmworker2-03ec8453a81f as failed, suspect timeout reached"
Jul 12 08:21:37 dockerswarmmanager dockerd[7180]: time="2017-07-12T08:21:37.788694522Z" level=info msg="memberlist: Marking dockerswarmworker2-03ec8453a81f as failed, suspect timeout reached"
Jul 12 08:24:01 dockerswarmmanager dockerd[7180]: time="2017-07-12T08:24:01.525570127Z" level=error msg="logs call failed" error="container not ready for logs: context canceled" module="node/agent/taskmanager" node.id=b6vnaouyci7b76ol1apq96zxx
Jul 12 08:24:01 dockerswarmmanager dockerd[7180]: time="2017-07-12T08:24:01.525713893Z" level=error msg="logs call failed" error="container not ready for logs: context canceled" module="node/agent/taskmanager" node.id=b6vnaouyci7b76ol1apq96zxx

и из журнала докера работника:

Jul 12 08:20:47 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:20:47.486202716Z" level=error msg="Bulk sync to node h999-99-999-185.scenegroup.fi-891b24339f8a timed out"
Jul 12 08:21:38 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:38.288117026Z" level=warning msg="memberlist: Refuting a dead message (from: h999-99-999-185.scenegroup.fi-891b24339f8a)"
Jul 12 08:21:39 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:39.404554761Z" level=warning msg="Neighbor entry already present for IP 10.255.0.3, mac 02:42:0a:ff:00:03"
Jul 12 08:21:39 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:39.404588738Z" level=warning msg="Neighbor entry already present for IP 104.198.180.163, mac 02:42:0a:ff:00:03"
Jul 12 08:21:39 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:39.404609273Z" level=warning msg="Neighbor entry already present for IP 10.255.0.6, mac 02:42:0a:ff:00:06"
Jul 12 08:21:39 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:39.404622776Z" level=warning msg="Neighbor entry already present for IP 104.198.180.163, mac 02:42:0a:ff:00:06"
Jul 12 08:21:47 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:21:47.486007317Z" level=error msg="Bulk sync to node h999-99-999-185.scenegroup.fi-891b24339f8a timed out"
Jul 12 08:22:47 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:22:47.485821037Z" level=error msg="Bulk sync to node h999-99-999-185.scenegroup.fi-891b24339f8a timed out"
Jul 12 08:23:17 dockerswarmworker2 dockerd[677]: time="2017-07-12T08:23:17.630602898Z" level=error msg="Bulk sync to node h999-99-999-185.scenegroup.fi-891b24339f8a timed out"

А этот от рабочего работника:

Jul 12 08:33:09 h999-99-999-185.scenegroup.fi dockerd[10330]: time="2017-07-12T08:33:09.219973777Z" level=warning msg="Neighbor entry already present for IP 10.0.0.3, mac xxxxx"
Jul 12 08:33:09 h999-99-999-185.scenegroup.fi dockerd[10330]: time="2017-07-12T08:33:09.220539013Z" level=warning msg="Neighbor entry already present for IP "managers ip here", mac xxxxxx"

Я перезапустил докер на проблемном работнике, и он снова начал работать. Я буду следовать...

** Сегодняшние результаты:

  • 2 рабочих доступны, один не
  • Я ничего не сделал
  • после 4-х часового "роя в одиночку", кажется, все снова работает?!
  • службы были перемещены от работника к другому по любой уважительной причине, все результаты, кажется, проблема со связью.
  • довольно запутанно.

1 ответ

Обновление до докера 17.06

Входящая оверлейная сеть была сломана в течение долгого времени до 17.06-rc3

Другие вопросы по тегам