首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头工人群休假-部队-超过最后期限

码头工人群休假-部队-超过最后期限
EN

Stack Overflow用户
提问于 2018-11-07 20:04:45
回答 2查看 5.2K关注 0票数 3

我在这里学习码头教程,https://docs.docker.com/get-started/part3/

当我在页面教程的末尾执行命令docker swarm leave --force时,我一直得到一个Error response from daemon: context deadline exceeded

每次我执行docker swarm leave --force命令时,终端似乎只是挂起,它不再提供错误消息,但除非我执行CTRL+C,否则它不会返回提示输入任何命令。

链接教程开头的docker swarm init命令在处于这种状态时也没有响应。

只有当我关闭VM实例并重新启动它时,停靠程序群命令才能再次工作。但是,当我再次执行链接中的步骤时,docker swarm leave --force命令也会出现相同的错误

知道它为什么要这么做吗?

我正在虚拟盒中运行Ubuntu18.04.1LTS,使用停靠版本 18.09.0-rc1,构建6e632f7

我看到了另一个链接Cannot leave swarm mode关于同样的问题,它是2年前的,那里的答案似乎是工作周围或完全完全删除码头,并重新安装,以使它工作。我希望还有别的办法来解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2020-11-16 11:37:37

对失败管理器有效的不是重新启动整个节点,而是停止对接服务,删除/var/lib/docker/swarm目录,重新启动对接服务,然后读取管理器:

关于经理-不及格(失败的经理):

代码语言:javascript
复制
sudo systemctl stop docker
sudo rm -r /var/lib/docker/swarm
sudo systemctl start docker

关于经理-工作(其他,运作中的经理):

代码语言:javascript
复制
docker node demote manager-failing
docker node rm manager-failing
ssh manager-failing $(docker swarm join-token manager | tail -2)
票数 3
EN

Stack Overflow用户

发布于 2018-11-09 15:49:48

好吧,我有一些好消息和坏消息给你。

2016-2017年,我在建造大型实验码头群环境时也面临着同样的问题。我们正在构建一个具有dns负载平衡的多区域停靠群集群。这是一个50+节点群集群。

有一次,我们的ceph存储集群崩溃了,并带走了大量的群集节点。当所有节点恢复联机时,我正经历与您描述的相同的问题。

好消息是:

对我起作用的是停止码头服务,重新启动,重新启动码头。集群上运行的所有服务都神奇地重新出现,好像什么都没有发生一样。

坏消息是:

这在大多数节点上都有效。一些蜂群的主人从未恢复过。这些节点,我只是简单地销毁,我只是提出了新的节点,以添加到蜂群。

编辑:我已经挖出了一些用于群恢复的旧脚本。

要恢复失败的群集管理器,您首先应该备份配置并旋转一个新实例。

代码语言:javascript
复制
 mkdir /root/Backup
 cp -rf /var/lib/docker/swarm /root/Backup
 cp /root/Backup
 tar -czvf swarm.tar.gz swarm/
 scp -r user@new_host:/tmp

在新主机上还原配置

代码语言:javascript
复制
cp swarm.tar /var/lib/docker
tar -xvf swarm.tar

排出您的工作节点

代码语言:javascript
复制
docker node update -availability drain [node]

更新所有正在运行的服务

代码语言:javascript
复制
docker service update --force
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53197008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档