docker节点在重启后,卡在down的状态。
在主节点上尝试inspect该节点,发现状态是:
"Status": {
"State": "down",
"Message": "heartbeat failure",
"Addr": "172.26.100.88"
}
解决办法
停止问题节点的docker服务
systemctl stop docker
移除文件tasks.db文件
rm -rf /var/lib/docker/swarm/worker/tasks.db
启动docker服务
systemctl start docker
我的方案可能并不一定能解决你的问题,但是我的情况是生效的。我发现一个docker节点任务始终无法调度上去,遂尝试重启该节点,重启完成之后发现该问题节点一直处于down的状态无法恢复。于是采用以上方案,验证有效解决问题。
参考资料:
https://devops.stackexchange.com/questions/5144/how-to-fix-a-heartbeat-failure-in-docker-swarm
https://github.com/moby/moby/issues/34827#issuecomment-457678500