В Docker Swarm, запущенном на Amazon Web Services, несколько раз случалось, что глобально развернутый сервис пропадал на одном узле роя, и docker node update --force
не возвращает его на всех узлах. Вот ситуация, согласно Docker:
ubuntu@swarm-manager-a:~$ docker service ls
ID NAME MODE REPLICAS IMAGE
vayezjxwifsd logging_papertrail global 10/10 gliderlabs/logspout:latest
7w1e9zhsa9kh monitoring_dd-agent global 9/9 mycompany/myddagent
...
Так почему-то рой думает, что мониторинг_dd-агент должен работать только на 9 из 10 хостов, тогда как все остальные глобальные службы работают на всех 10 хостах.
Запрос статуса отдельных развертываний мониторинг_dd-агент, похоже, что отсутствующий экземпляр отключился сам на узле рой-рабочий-г:
ubuntu@swarm-manager-a:~$ docker service ps monitoring_dd-agent
ID NAME IMAGE NODE DESIRED STATE
xlm3kalqevnr monitoring_dd-agent.4z3yz6y5 mycompany/myddagent swarm-worker-f Running Running 2 days ago
lyqw42dy8rsv monitoring_dd-agent.rguyjlhg mycompany/myddagent swarm-worker-d Shutdown Complete 4 hours ago
on5zmi18tcal monitoring_dd-agent.zcx9jo66 mycompany/myddagent swarm-manager-b Running Running 2 days ago
...
Узлы идентичны, за исключением того, что у рабочих 32 ГБ памяти, а у менеджеров 16 ГБ:
ubuntu@swarm-manager-a:~$ docker system info
Server Version: 18.03.1-ce
Swarm: active
Managers: 3
Nodes: 10
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Kernel Version: 4.4.0-1079-aws
Operating System: Ubuntu 16.04.5 LTS
CPUs: 8
Total Memory: 15.11GiB
...
У кого-нибудь есть указатели на объяснения этой странности?