锦通 发表于 2024-8-29 23:11:36

微服务实战系列之玩转Docker(十二)

前言

   山一程,水一程,身向榆关那畔行,夜深千帐灯。——清·纳兰性德
近来偶读纳兰的《长相思》经典之作,被这个“行军”场面震撼了。长长的队伍,跋山涉水,野宿一处。夜深人静的时候,突然激发了纳兰的“思乡”之情,他的迷恋和伤感从此被永远定格。可见,如想看懂一个人,可以从他的文章入手,慢慢研读,细细咀嚼。
闲言少叙,言归正传。通过本系列第十篇和第十一篇的分享,Docker Swarm的面纱已经被博主揭开一多半了,但是还差一截不是么?接下来,博主继承分享Swarm集群的实践,教你把握多Manager节点的集群摆设,以真正实现高可用。
Q:如何管理Swarm cluster(进阶)

通过前序文章,我们可以轻松的Build一套单一manager的swarm集群。但是缺陷很显着,不足以满足高可用的目标。所以本博的目的是摆设一套多manager的swarm集群。
1. 资源准备

根据RAFT协议,我们设置manager节点3个,worker节点3个。
序号节点名称节点范例1docker-manager1(10.11.12.70)manager2docker-manager2(10.11.12.64)manager3docker-manager3(10.11.12.66)manager4docker-worker1(10.11.12.73)worker5docker-worker2(10.11.12.74)worker6docker-worker3(10.11.12.65)worker 参考下图摆设架构,博主筹划摆设一个多manager节点的swarm集群:
https://i-blog.csdnimg.cn/direct/1a87a6b03b1e4466aa26e4899317661b.png
2. 摆设要求

根据资源清单,提供了3个manager和3个worker,我们可以如许完成集群定义:
https://i-blog.csdnimg.cn/direct/7d5442b77de84acba5d3cd233283b313.png
   提示:在同一个swarm集群中,每个worker node只从属于一个manager node。
3. 创建集群

3.1 Manager组群

起首我们把3个manager拉入一个群中,可按如下步调完成。
3.1.1 新建Leader

俗话说,“火车跑得快,全凭车头带”。同理,Swarm集群也需要一个带头“大哥”,我们让docker-manager1节点当大哥吧。依然通过docker swarm init来完成:
docker swarm init --advertise-addr 10.11.12.70
结果为:
https://i-blog.csdnimg.cn/direct/537ea43a3fe6454f9edc8c0d18a56cbe.png
https://i-blog.csdnimg.cn/direct/6633a0b80eb44845b5c3d832cbb2dde7.png
通过上图,我们新建了一个swarm集群并指定Leader,该集群支持以manager或worker身份加入。这里我们选择manager,即:add a manager to this swarm.
3.1.2 组建Manager group

选择以manager身份加入swarm集群,需要按如下步调完成。
Step1:
获取入群的token,通过docker swarm join-token manager执行:
https://i-blog.csdnimg.cn/direct/f68a667ed1e54dbc81f0f1c61deee59a.png
此时,你获得了一个加入群的口令,即docker swarm join...
Step2:
在docker-manager2和docker-manager3节点中,分别执行返回的口令完成入群:
docker swarm join --token SWMTKN-1-3lpswen1fo9ju11j5xd6tledniqj5veqbtgypm1j9wh2xp0aot-91oghmtrip7g1hyzrxcoj6t3o 10.11.12.70:2377
那么结果为:
https://i-blog.csdnimg.cn/direct/5c5c71363e0144b4b620daef3039f4d2.png
https://i-blog.csdnimg.cn/direct/60851df98a9e4395995a2a67a29881ef.png
最后在docker-manager1(leader)节点,我们可以看到manager group建立起来了:
https://i-blog.csdnimg.cn/direct/3d162aceab09463bb2fb538c3cf8295f.png
   提示:docker swarm join-token命令只能在manager节点中运行.
3.2 Manager与Worker组群

完成了3.1系列操纵,我们接着为每个manager指定worker。博主以docker-manager1为例,其他manager皆重复一遍。
在docker-manager1节点中,执行docker swarm join-token worker:
https://i-blog.csdnimg.cn/direct/60ea49a5de1146fa9d08c3440c629fc0.png
返回一个docker swarm join ...,该命令支持以worker身份加入集群,并指定manager节点。那么我们可以直接copy后,在docker-worker1节点执行:
https://i-blog.csdnimg.cn/direct/bc5df45aed0f4696abdbbf07dca9ffca.png
此时,集群包含了3个manager node和1个worker node:
https://i-blog.csdnimg.cn/direct/e5c3b30717b44b30aba7ce61087235ba.png
同样,根据摆设要求,docker-manager2和docker-manager3均指定相应的worker后,我们可以看到最终的集群如下:
https://i-blog.csdnimg.cn/direct/4a57cefc872f489f881c02e4cff5b919.png
   提示:有些同砚有疑问,为什么docker-worker2的状态有Ready和Down?这是因为worker2节点中途退出了集群,然后又加入了集群。
4. 情景演练

很简单,好比可以按如下几种展开:


[*]docker-manager1节点down了,观察集群的变化
[*]docker-worker1节点down了,观察集群的变化
[*]3个manager节点均down了,观察集群的变化
[*]…
结语

通过本文,博主对多manager多worker集群举行了完整的演示,信赖各位对Swarm集群有了更多的熟悉。固然swarm还有其他更高阶的用法,期待未来有更多分享!
系列回顾

微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生
https://img-blog.csdnimg.cn/direct/8aea51c6bbfe413ebcb6761ad143b4dc.jpeg

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 微服务实战系列之玩转Docker(十二)