docker swarm init --force-new-cluster命令的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker swarm init --force-new-cluster命令的使用相关的知识,希望对你有一定的参考价值。
参考技术A 这是最近碰到问题,然后重建swarm网络过程中用的命令以及经验总结。字面意思是基于当前状态,重建swarm网络。
我们知道swarm是基于raft协议来运行的,所以通常会有多个manager节点,当超过半数的manager节点都存活的时候,swarm网络才能达成共识,执行操作,否则是不能做swarm相关的操作的。
注意 worker节点不参与投票,所以worker节点不影响swarm网络的状态。
假设现在有一个5 manager节点,3个worker节点的swarm cluster环境;对应5节点的swarm网络允许最大的manager节点宕数是2,也就是说可以挂掉1个或者2个manager节点,整个swarm cluster还能继续允许正常;但是如果挂掉了三个manager节点了,那么此时只有两个manager节点活的,而两个不能形成多数投票,此时swarm网络不能做任何swarm 相关的操作,例如: docker node ls, docker service ls 这些命令都不允许,因为没有超过半数的投票:
此时应该怎么办呢?最佳方案是把挂掉的其他manager节点赶快恢复回来,让swarm cluster重新形成多数活节点。
然而如果坏掉的节点彻底坏掉了,已经不能恢复了,那么怎么办呢?此时就可以使用 docker swarm init --force-new-cluster 命令。
注意此时虽然swarm cluster不能操作了,但是所有的worker都不影响正常的业务transaction。
命令 docker swarm init --force-new-cluster 需要在一台活着的manager节点上执行,其含义是:
此后用户就可以手动把其他的新节点加进来了:
至此就完整了恢复了swarm cluster环境。
docker swarm集群
docker swarm集群
docker swarm集群搭建起来也非常简单:
主要牵扯到如下几个一级子命令:
命令格式如下:
docker init 初始化一个docker swarm集群
join 向几个swarm集群中添加一个工作节点或者是管理节点
join-token 管理集群节点中的令牌token
leave Leave the swarm
unlock Unlock swarm
unlock-key Manage the unlock key
update 更新升级整个swarm集群
以上是关于docker swarm init --force-new-cluster命令的使用的主要内容,如果未能解决你的问题,请参考以下文章