文章目录
- Swarm -- Docker的调度工具
- 简介
- 一、安装docker
- 二、安装Swarm单机版
- 1.拉取swarm镜像
- 2.搭建Swarm环境
- 3.确认Swarm单机版搭建是否成功
- 三、安装Swarm双机版
- 1.新结点加入Swarm
- 2.启动管理机
- 3.确认双机版搭建是否成功
- 四、在Swarm双机版部署服务
- 1.部署服务到Swarm双机版
- 2.查看服务部署情况
- 3.扩展服务到多节点
- 总结及展望
Swarm – Docker的调度工具
简介
- Swarm是一个由Docker研发团队开发的调度工具,可以使用标准的Docker 应用编程接口。
- Swarm有三个核心概念:节点、服务和任务。
- 节点是已加入Swarm的Docker引擎的实例
- 服务是在Worker节点上执行的
- 任务是在Docker容器中执行的命令
一、安装docker
安装docker是安装Swarm的准备工作,安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装成功效果如下:
安装成功后,检查Docker的安装是否正确:
$docker info
二、安装Swarm单机版
1.拉取swarm镜像
拉取swarm镜像的命令为:
$docker pull swarm
最后一行显示信息 Status: Downloaded newer image for swarm:latest
,说明拉取成功。
2.搭建Swarm环境
初始化Swarm的命令为:
$docker swarm init
执行该命令后,获取全球唯一的 token,作为Swarm环境的唯一标识,效果如下:
3.确认Swarm单机版搭建是否成功
在ubuntu上执行的命令为:
$docker ps -a
显示如下信息,表明Swarm单机版启动成功。
三、安装Swarm双机版
1.新结点加入Swarm
在新节点主机slave01上执行:
docker swarm join --token
SWMTKN-1-21th3y371uzbt1eebdrb72yk7l2y1ljrzz0oy1qmpbhg1s0frb-b42lgqwhcsn1ozuvys5xh534n
192.168.149.128:2377
运行结果如下:
运行结果最后一句This node joined a swarm as a worker.
表明节点主机slave01以worker的身份加入swarm。
2.启动管理机
在管理机上执行:
$docker run -d -p 2378:2377 swarm manage token://SWMTKN-1-
21th3y371uzbt1eebdrb72yk7l2y1ljrzz0oy1qmpbhg1s0frb-b42lgqwhcsn1ozuvys5xh534n
运行结果如下:
3.确认双机版搭建是否成功
在管理机上执行:
$docker ps -a
显示如下信息,表明管理机启动成功。
在管理机上执行docker -H 192.168.149.128:2378 info
查看集群详细信息,下图列出了每个节点名、配置信息等。
上图中红框标出的
Managers: 1
Nodes: 2
表示有2个节点(Node),1个管理节点(Managers)。
至此,通过swarm搭建docker双机版完成!
四、在Swarm双机版部署服务
1.部署服务到Swarm双机版
搭建swarm双机版后,部署服务到Swarm双机版。
部署服务时,在swarm-manager节点上创建一个名为 helloworld 的服务,指派给一个工作节点:
$docker service create --replicas 1 --name helloworld alpine ping docker.com
该命令的参数解释:
- –replicas:service运行的实例个数
- –name: 命名service为helloword
- alpine ping docker.com: 定义此service为,在 Alpine Linux容器中,执行ping http://docker.com
2.查看服务部署情况
查看 helloworld 服务运行在哪个节点上,可以看到目前是在 swarm-worker 节点:
$ docker service ps helloworld
查看 helloworld 部署的具体信息:
$docker service inspect --pretty helloworld
3.扩展服务到多节点
将上述的 helloworld 服务扩展到2个节点。
$docker service scale helloworld=2
从下图可以看到,服务从1个节点扩展到2个节点。
总结及展望
本文介绍了ubuntu单机版Swarm安装及试用,并进一步实现了Swarm双机版的安装和服务部署。
Swarm作为Docker的调度工具,通过自动故障转移来处理错误,并且当一个实例不足以处理或计算数据时,能够扩展容器来解决问题。 Swarm的主要任务是负责在最合适的主机上启动容器,并且将它们关联起来。
我将Swarm从单机版升级为双机版,下一步尝试安装Swarm集群。
Swarm集群由管理节点(manager)和工作节点(work node)构成,如下图所示。
- swarm manager:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
- work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。