问题描述
我们在生产环境中使用 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 (将#修改为@)