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

server/2024/10/8 13:51:22/

前言

山一程,水一程,身向榆关那畔行,夜深千帐灯。——清·纳兰性德

最近偶读纳兰的《长相思》经典之作,被这个“行军”场面震撼了。长长的队伍,跋山涉水,野宿一处。夜深人静的时候,突然激发了纳兰的“思乡”之情,他的留恋和伤感从此被永远定格。可见,如想看懂一个人,可以从他的文章入手,慢慢研读,细细品味。

闲言少叙,言归正传。通过本系列第十篇和第十一篇的分享,Docker Swarm的面纱已经被博主揭开一多半了,但是还差一截不是么?接下来,博主继续分享Swarm集群的实践,教你掌握多Manager节点的集群部署,以真正实现高可用

Q:如何管理Swarm cluster(进阶)

通过前序文章,我们可以轻松的Build一套单一managerswarm集群。但是缺陷很明显,不足以满足高可用的目标。所以本博的目的是部署一套managerswarm集群

1. 资源准备

根据RAFT协议,我们设置manager节点3个,worker节点3个。

序号节点名称节点类型
1docker-manager1(10.11.12.70)manager
2docker-manager2(10.11.12.64)manager
3docker-manager3(10.11.12.66)manager
4docker-worker1(10.11.12.73)worker
5docker-worker2(10.11.12.74)worker
6docker-worker3(10.11.12.65)worker

参考下图部署架构,博主计划部署一个manager节点swarm集群:
在这里插入图片描述

2. 部署要求

根据资源清单,提供了3个manager和3个worker,我们可以这样完成集群定义:
在这里插入图片描述

提示:在同一个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

结果为:
在这里插入图片描述
在这里插入图片描述

通过上图,我们新建了一个swarm集群并指定Leader,该集群支持以managerworker身份加入。这里我们选择manager,即:add a manager to this swarm.

3.1.2 组建Manager group

选择以manager身份加入swarm集群,需要按如下步骤完成。
Step1
获取入群的token,通过docker swarm join-token manager执行:
在这里插入图片描述
此时,你获得了一个加入群的口令,即docker swarm join...
Step2
docker-manager2docker-manager3节点中,分别执行返回的口令完成入群:

docker swarm join --token SWMTKN-1-3lpswen1fo9ju11j5xd6tledniqj5veqbtgypm1j9wh2xp0aot-91oghmtrip7g1hyzrxcoj6t3o 10.11.12.70:2377

那么结果为:
在这里插入图片描述
在这里插入图片描述
最后在docker-manager1leader)节点,我们可以看到manager group建立起来了:
在这里插入图片描述

提示docker swarm join-token命令只能在manager节点中运行.

3.2 Manager与Worker组群

完成了3.1系列操作,我们接着为每个manager指定worker。博主以docker-manager1为例,其他manager皆重复一遍。

docker-manager1节点中,执行docker swarm join-token worker
在这里插入图片描述
返回一个docker swarm join ...,该命令支持以worker身份加入集群,并指定manager节点。那么我们可以直接copy后,在docker-worker1节点执行:
在这里插入图片描述
此时,集群包含了3个manager node和1个worker node:
在这里插入图片描述

同样,根据部署要求,docker-manager2docker-manager3均指定相应的worker后,我们可以看到最终的集群如下:

在这里插入图片描述

提示:有些同学有疑问,为什么docker-worker2的状态有Ready和Down?这是因为worker2节点中途退出了集群,然后又加入了集群。

4. 情景演练

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

结语

通过本文,博主对多managerworker集群进行了完整的演示,相信各位对Swarm集群有了更多的认识。当然swarm还有其他更高阶的用法,期待未来有更多分享!


系列回顾


微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生

在这里插入图片描述


http://www.ppmy.cn/server/105545.html

相关文章

如何使用ssm实现保险业务管理系统设计与实现

TOC ssm131保险业务管理系统设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规…

【EI会议征稿】第四届能源、动力与电气工程国际学术会议(EPEE 2024)

重要信息 会议官网:www.icepee.net(投稿填写邀请码L8070) 接受/拒稿通知:投稿后5天内 会议时间&地点:2024年09月20-22日 | 中国武汉 会议收录检索:IEEE Xplore, EI, Scopus 主办单位 承办单位 技术…

提升用户体验的秘诀:ThinkPHP6中Ajax的妙用

ThinkPHP6是一款流行的PHP开发框架,它提供了许多强大的功能来快速开发Web应用程序。其中一个非常强大的功能是Ajax,它使得在不刷新整个页面的情况下,可以通过异步请求获取和更新页面内容。在本文中,我们将学习如何在ThinkPHP6中使…

如何从单点到集群配置Eureka:最佳实践与配置详解

如何从单点到集群配置Eureka:最佳实践与配置详解 1. 引言 什么是Eureka? Eureka是Netflix开源的服务发现和注册中心,广泛应用于微服务架构中。它允许各个服务实例在启动时注册到Eureka Server,并通过Eureka Client获取其他服务…

如何在Windows下使用make编译Makefile

最近有小伙伴咨询我去编译运行一个程序。我一开始以为是CMakeLists,结果发现是makefile。 什么是Makefile ‌Makefile是一种用于自动化构建和管理程序的工具‌,它定义了项目中文件的依赖关系和构建步骤,帮助程序员自动化编译、链接和打包程序…

在线BLOG网

TOC springboot0785在线BLOG网 第1章 绪论 1.1课题背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。人们可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户生活需求的管理系统。网站系统有时更像是一个大型“展示平台”…

chrome扩展程序本地打包

简介 本文为Chrome浏览器已安装的扩展程序打包为离线.crx文件,便于在无法访问Chrome商店场景下使用 扩展管理页面 chrome://extensions/ 确定自己需要打包的扩展程序ID 找到扩展程序路径 chrome默认完整路径查看方法 chrome://version/ 其中【个人资料路径】下的…

文字的力量

不知道以前的时代的年轻人有没有这样的感受。现在我觉得自己是不是出现了认知偏差,发现在很多描写现在的二十几岁年轻人的成长经历的文字下面都会出现很多共鸣,包括我自己也有,就让我有一个错觉:是不是中国所有的和我同龄的年轻人都是这样过来…