一个节点上缺少 Docker Swarm 全局服务

一个节点上缺少 Docker Swarm 全局服务

在 Amazon Web Services 上运行的 Docker Swarm 中,全局部署的服务在 Swarm 的单个节点上丢失,并且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-代理应该只在 10 台主机中的 9 台上运行,而所有其他全局服务都在所有 10 台主机上运行。

查询各个部署的状态监控_dd-代理,似乎丢失的实例已在节点上自行关闭swarm-worker-d

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                         
...

这些节点完全相同,只是工作节点有 32GiB 内存,而管理器有 16GiB:

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
...

有谁能解释一下这种奇怪的现象吗?

相关内容