Docker Swarm-“;获取节点时出错<;id>;:节点<;id>;未找到”;重复的。管理器节点继续查找已删除的节点 操作系统:CentOS 7,内核3.10.0-862.el7.x86_64 Docker版本:19.03.12社区,API 1.40
你好, 我运行的是Docker Swarm集群,有3名经理和9名工人 昨天,由于未知原因,集群被破坏,我在一个管理器上重新初始化(Docker Swarm-“;获取节点时出错<;id>;:节点<;id>;未找到”;重复的。管理器节点继续查找已删除的节点 操作系统:CentOS 7,内核3.10.0-862.el7.x86_64 Docker版本:19.03.12社区,API 1.40,docker,docker-swarm,Docker,Docker Swarm,你好, 我运行的是Docker Swarm集群,有3名经理和9名工人 昨天,由于未知原因,集群被破坏,我在一个管理器上重新初始化(docker swarm init——强制创建新集群),并让其他节点再次加入集群 现在只有一个管理器(我们称之为m1),m1节点每秒钟打印一次这样的日志(/var/log/messages): 这三个ID(2rcgf7rzqvojr4yzyx3ko13ut,i4i2…,xkig…)是分配给三个工作节点(例如,w1、w2、w3)的ID 当我昨天试图恢复集群时,我做到了
docker swarm init——强制创建新集群
),并让其他节点再次加入集群
现在只有一个管理器(我们称之为m1),m1节点每秒钟打印一次这样的日志(/var/log/messages):
这三个ID(2rcgf7rzqvojr4yzyx3ko13ut
,i4i2…
,xkig…
)是分配给三个工作节点(例如,w1、w2、w3)的ID
当我昨天试图恢复集群时,我做到了
# on m1
docker swarm init --force-new-cluster
# then, on w1
docker swarm leave --force
docker swarm join --token .... m1:2377
(I guess the ID of w1 was changed from 2rcgf7rzqvojr4yzyx3ko13ut to new one at this point)
# same on w2 and w3
目前,没有ID为2rcgf7rzqvojr4yzyx3ko13ut
的节点,但manager节点仍在寻找它
我甚至无法按ID删除节点:
# on m1
# docker node rm 2rcgf7rzqvojr4yzyx3ko13ut
Error: No such node: 2rcgf7rzqvojr4yzyx3ko13ut
我现在能做什么?我希望在m1上重新启动docker守护进程可能会有所帮助,但我担心集群会再次被破坏。这是一个现场服务环境,所以我要非常小心
您可能会说,“首先,将更多节点升级为管理器,然后尝试在管理器上重新启动dockerd”。
我昨天试过了。但是docker node promote m2 m3
命令挂起,突然我失去了m1上的仲裁,我无法执行任何群集操作,最后我不得不重新初始化群集。。。所以我计划在几个月后的下一个维护日重新启动每个节点,并从头开始初始化整个集群。我想这是另一个话题。现在,我只想让m1管理器停止寻找这3个节点
谢谢
编辑:
两周后,在我们的定期维护日,我计划docker stack rm
所有docker stack,在m1和(如果需要)其他节点上重新启动docker daemon,并且(如果问题仍然存在)重新初始化整个Swarm集群
但当我移除一个Docker堆栈时,m1上的Docker守护进程突然停止输出“node not found”消息。然后我可以将其他节点提升为管理器。看来一切都开始顺利了
所以。。。我找不到这个问题的确切原因。我只是猜测,当我重新初始化swarm集群时,堆栈信息没有得到正确更新,因此管理器一直试图找到不存在的节点来分发容器
# on m1
# docker node rm 2rcgf7rzqvojr4yzyx3ko13ut
Error: No such node: 2rcgf7rzqvojr4yzyx3ko13ut