Доступ к 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