Swarm集群由管理节点和工作节点组成。我将用一个管理节点和俩个工作节点来讲解。
初始化集群 (该节点自动成为管理节点)
# docker swarm init --advertise-addr ip地址
新开俩个虚拟机(推荐使用vmware,有克隆的功能,测试完可以删掉。),俩个虚拟机都输入上图 docker swarm join
那一行,加入集群。
# docker swarm join --token SWMTKN-1-40m9z7lf0b5oq7remw9foss359jid7y8vdrcu5equzifj8npc6-6su7ggk7e3z8wbh27m119dm1l 192.168.247.130:2377
你不能跟着我复制,你需要复制你初始化完的令牌。
每增加一个worker节点我就 docker node ls
查询一次。上面的“ * ” 指的是当前机器所属的节点。
但是,因为我的虚拟机是克隆的,所以HOSTNAME
全部都一个名了,需要对它们进行修改,不然不便管理(可读性)。
让切换到fom714b08yxo1tdu4v26o6xmw
虚拟机终端,让它离开集群
# docker swarm leave
切换到管理节点终端
管理节点就显示为Down了,如果不为Down,就等一会。因为不为Down无法执行下面的删除操作。那为啥要删?因为worker节点退出后,管理节点还是存在,只是状态为Down了,而worker节点重连后是新增了一条信息,为Down的那一条就没有用了。
删除
# docker node rm fom714b08yxo1tdu4v26o6xmw
切换到刚才删除的那台机器,设置名称
# hostnamectl set-hostname worker1
加入集群
# docker swarm join --token SWMTKN-1-40m9z7lf0b5oq7remw9foss359jid7y8vdrcu5equzifj8npc6-6su7ggk7e3z8wbh27m119dm1l 192.168.247.130:2377
切换管理节点终端
第二个worker节点也改了,改成manager2,这个manager2呢,咱把它升一下级,升为管理节点。
切换到管理节点终端
# docker node promote manager2
# docker node ls
这个老大呢,就是为首的管理节点。这个老二就是当老大挂了的时候老二接替上。
现在就去把老大弄死(关机),去看看老二有多开心。
说需要有一半以上的管理节点存活才行。那我们先复活老大,让老二哭去。再去克隆一个虚拟机,命名为manager3升级为管理节点。
好了,看在老大有功的份上,这次不弄死它了,让它退休(关机)吧。
切换到管理节点老二那
# docker node ls
可以见得,老二已经接管了。
那么,总结就是,你起码需要有三个管理节点。
在我临走前,第二代老二恭敬的问:您老何时再来?我好去接您。