docker swarm 不会将任务分配给新的工作节点

问题描述

我们在生产环境中使用 docker swarm。这是 docker node ls 命令的输出。

ID                            HOSTNAME                         STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
5qpi2zmdonheusou7fgkh9m1g     ip-10-x-241-y.ec2.internal    Ready     Active         Leader           20.10.2
h5nway19ms4po91f0pjzar22b     ip-10-x-241-y.ec2.internal   Ready     Active                          20.10.2
79sikbrre17pf495vijjpydy0 *   ip-10-x-241-y.ec2.internal   Ready     Active         Reachable        20.10.2
u83yq5n5gi7rdkit5i3i6gj6i     ip-10-x-243-y.ec2.internal   Ready     Active                          20.10.2
o87buageysj1vbcefc9xz4wbe     ip-10-x-243-y.ec2.internal   Ready     Active         Reachable        20.10.2

这是 docker service ls 命令输出:

ID             NAME                                  MODE         REPLICAS   IMAGE                                                                 PORTS
m21u7z06tzqw   portainer-app                         replicated   1/1        portainer/portainer:latest                                            *:9002->9000/tcp
jrk2trgqc2r1   aaaaaaaaaaaaaaaaaaaaa                 global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx         *:9200->9200/tcp,*:9300->9300/tcp
3sevi4nv5lnj   bbbbbbbbbbbbbb                        global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                *:5601->5601/tcp
vpij8elkdcqr   cccccccccccccccc                      global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx              *:5000->5000/tcp
etyu98fr7fc4   ddddddddddddddddddddddddddddddddddd   global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6spidjk8e4dr   eeeeeeeeeeeeeeeeeeeeee                replicated   1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
v5h58ms3as3a   fffffffffffffffffffffffffffff         global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
qb56lj6bb8k6   gggggggggggggggggggggggggggggggg      global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
3wa4fmhtwxsr   hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh      global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
2kenua5sdrfa   iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
amq6qls538qy   jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj       global       1/1        xxxxxxxxxxxxxxxxxxxxxxxxxxxx
qude01eq2c5j   kkkkkkkkkkkkkkkkkkkkkkkkk             global       2/2        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx             *:443->9000/tcp,*:9000->9000/tcp
uirjzopva1rq   llllllllllllllllllll                  global       2/2        xxxxxxxxxxxx

此配置正常运行一年多。但上周末,运营团队应用了安全补丁并重新启动了工作节点机器。之后,其中一个工作节点“u83yq5n5gi7rdkit5i3i6gj6i”不运行任何容器。我从 swarm 中删除了节点并再次将其添加为 worker,但没有任何改变。我也做了服务更新,但它只在一个工作节点中重新启动容器。因为它们在全局模式下运行,所以我无法扩展服务以运行 2 个容器(它给出了扩展只能在副本模式下工作的错误)。预期的行为是,在添加工作节点后,swarm 会自动将新容器部署到新工作节点,但事实并非如此。

我相信 docker swarm 正在记录这个问题,但它无法在新的工作节点上部署容器,但我找不到日志的正确位置。

由于是生产环境,我无法从头开始重新创建 docker swarm。我需要找到一种方法让 docker swarm 在另一个工作节点中部署服务。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)