一文读懂Docker之Docker Swarm集群平台搭建

目录

一、Docker Swarm简介

1、基本架构图

2、关键概念

(1)、Swarm

(2)、Node节点

(3)、service服务

(4)、task任务

3、工作模式

(1)、Node节点

(2)、Service服务

(3)、任务与调度

(4)、服务副本与全局服务

4、调度策略

5、集群模式特性

二、Docker Swarm集群部署

1、准备工作

(1)、主机规划:

(2)、分别修改manager、worker节点hostname

(3)、分别修改manager、worker节点hosts文件

(4)、关闭防火墙

2、安装docker

(1)、切换镜像源

(2)、查看当前镜像源中支持的docker版本

(3)、 安装特定版本的docker-ce

(4)、添加一个配置文件

(5)、启动docker

(6)、检查docker状态和版本

(7)、 配置解决镜像拉取慢的问题(每个节点均要执行)

步骤一、进入docker在本机的配置目录 ,此处为/etc/docker

步骤二、新建配置文件daemon.json,

步骤三、重启docker

3、Manager节点创建Swarm集群

(1)、创建集群

(2)、查看集群信息

4、Worker节点加入集群


一、Docker Swarm简介

       

         Swarm是Docker公司推出的用来管理docker集群的平台,可以让用户很容易的部署跨主机的容器集群服务。Docker Swarm 和 Docker Compose 都是 Docker 官方容器编排项目,不同的是Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务。对于微服务的部署,显然 Docker Swarm 会更加适合。

        从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中,并且已经内置了服务发现工具。

  Swarm只是一个调度器(Scheduler)加路由器(router),它本身不运行容器,只接受Docker客户端发来的请求,调度适合的节点来运行容器。即使Swarm由于某些原因挂掉,集群中的节点也会正常运行,等到Swarm重新恢复运行后,它会收集重建集群信息。

1、基本架构图

       

         在结构图可以看出 ,Docker Client使用Swarm对集群(Cluster)进行调度使用。Swarm 集群由管理节点(manager)和工作节点(worker)构成。Swarm是典型的master-slave结构,通过发现服务来选举manager。manager是中心管理节点,各个node上运行agent接受manager的统一管理,集群会自动通过Raft协议分布式选举出manager节点,避免了单点的瓶颈问题,同时也内置了DNS的负载均衡和对外部负载均衡机制的集成支持。

2、关键概念

(1)、Swarm

        集群的管理和编排是使用嵌入docker引擎的SwarmKit,可以在docker初始化时启动swarm模式或者加入已存在的swarm。

(2)、Node节点

  • Manager节点:负责整个集群的管理,包括集群配置、服务管理等所有跟集群相关的工作。Manager节点选举一个leader节点去执行调度任务。
  • Worker节点:接收并执行从管理器节点分派的任务,参与容器集群负载调度,主要负责运行相应的服务(容器)来执行任务(task)。

(3)、service服务

        一个服务是工作节点上执行任务的定义。创建一个服务,指定了容器所使用的镜像和容器运行的命令。Service是运行在Worker节点上的task的描述,Service的描述包括使用哪个docker 镜像、服务网络、服务端口、服务副本数等。

(4)task任务

        一个任务包含了一个容器及其运行的命令。task是Service的执行实体,task启动docker容器并在容器中执行任务。

3、工作模式

(1)、Node节点

(2)、Service服务

(3)、任务与调度

(4)、服务副本与全局服务

4、调度策略

        Swarm在调度运行容器的时候,会根据指定的策略来计算最适合运行容器的Worker节点。目前支持的策略有:random、spread、

在分布式系统架构中,使用ApacheCamel组件来实现多节点的ESB-BrokerServer设计,能够有效整合原子服务并编排服务路由。首先,ApacheCamel提供了丰富的组件和路由规则,能够简化服务整合的复杂度,通过定义Camel路由,可以轻松实现服务间的调用和数据转换。 参考资源链接:[利用ApacheCamel与多节点设计ESB-BrokerServer的原子服务整合与路由编排](https://wenku.youkuaiyun.com/doc/uz8c4n6ayj?spm=1055.2569.3001.10343) 为了保证系统的高可用性和扩展性,采用多节点设计是关键。每个ESB-BrokerServer节点都可以独立运行,这样在面对业务量增加或服务更新时,系统能够通过添加更多节点来分散负载,同时保证不中断现有服务。 此外,为了支持动态伸缩和业务系统的注册,推荐使用DockerSwarmDockerSwarm作为Docker的原生集群管理工具,它能够将多个Docker引擎组织成一个虚拟的Docker主机。通过将ApacheCamel应用容器化,可以利用DockerSwarm集群管理能力,实现服务的自动部署、扩展和故障恢复。DockerSwarm还支持服务的编排工具,使得业务系统的注册和动态伸缩变得简单。通过定义服务模板,可以在DockerSwarm集群中动态地启动或停止服务实例,根据实际业务需求调整资源分配。 在具体操作上,可以通过编写Dockerfile来容器化ApacheCamel应用,然后在DockerSwarm集群中定义服务,通过docker service命令进行服务的创建、更新、删除等操作。这样,无论是在节点故障时的自动恢复,还是业务需求变化导致的资源重新分配,都能够通过DockerSwarm的管理来实现,从而确保系统的高可靠性和灵活性。 为了深入理解和应用上述技术,推荐阅读《利用ApacheCamel与多节点设计ESB-BrokerServer的原子服务整合与路由编排》一文。这篇文章详细介绍了如何通过ApacheCamel组件和DockerSwarm实现分布式系统的高效设计,为解决当前问题提供了实用的指南和示例。 参考资源链接:[利用ApacheCamel与多节点设计ESB-BrokerServer的原子服务整合与路由编排](https://wenku.youkuaiyun.com/doc/uz8c4n6ayj?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值