背景
docker swarm集群的某几个节点出现问题,需要重启这些节点的docker服务
错误操作
这几个节点都是worker节点
- 在物理机以root账户登录
- 执行systemctl restart docker
- 发现worker节点docker服务重启成功但是在manager执行docker node ls发现该节点状态处于Down
- worker节点执行docker swarm leave试图离开集群
- worker节点执行失败并报错:Error response from daemon: context deadline exceeded
- worker节点执行docker swarm leave -f,同样失败并返回相同的错误
- manager执行docker node rm xxxx删除这个Down的worker节点,然后worker节点leave集群,依旧失败
- worker节点执行docker swarm join企图重新加入集群,但是失败,报错说已经在集群中,需要先执行leave再join
错误操作导致的结果
集群能正常工作,但是少了一个节点。worker节点退不出集群,也加入不了集群,该节点对集群来说处于不可达不可用状态。
处理方法
在这种情况下,只能通过删除物理机上的swarm配置信息才能退出集群,然后