赞
踩
Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目
但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具
而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合
从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具
我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了
使用docker-compose部署集群实现负载均衡的时候,我们使在一台主机上面做的,不可以动态的拉神web服务的数量
因为使用docker-compose不满足实际生产环境的要求,因此不需要使用docker-compose了
实际当中我们的web(rs)服务器是要随着业务的增加而增加的
因此使用daoker内置的swarm集群来实现
swarm要求docker-compose必须v3版本以上
swarm自带docker stack会替代docker-compose
其实docker-machine+docker-swarm,就可以实现自动部署docker和自动实现各种功能
可以实现:负载均衡,高可用(服务的自动迁移)动态拉神与压缩web服务器的数量
每一个节点都会拉起容器,而且都是调度器
但是监控只能在server1这个管理节点上面做
Docker Machine | 创建 Docker 主机 |
---|---|
Docker Swarm | 配置集群节点 |
Docker Service | 部署单个集群服务 |
Docker Stack | 部署多个集群服务,以及 GUI 管理页面 |
docker-machine、docker swarm、docker node、docker service 和 docker stack 常用命令要知道
3台rhel7.3版本的虚拟机
一共三台主机:server1 server2 server3
server1是主节点(leader节点\manager节点)
主机信息 | 主机功能 |
---|---|
server1(172.25.2.1) | swarm集群的主节点,自身同时也是一个worker节点 |
server2(172.25.2.2) | swarm集群的worker节点1 |
server3(172.25.2.3) | swarm集群的worker节点2 |
(1)使用真机连接server1、server2和server3
(2)从真机给三个节点都发送一个nginx镜像
首先三台机子都必须安装docker,均有nginx的镜像
这个我之前的实验已经做过,因此直接在上面做即可,不再演示安装docker服务的过程
(3)三个节点的docker服务已经安装好,并且实验环境干净
server1
server2
server3
昨天做了docker-compose之后,发现不是很灵活,现在我们使用docker swarm来部署docker集群
不使用docker-compose了
自动实现集群部署、负载均衡、高可用
(1)在server1上面
server1是leader节点,因此在server1上面初始化集群
docker swarm init
(2)在server2上面
server2是worker节点,将server2也加入集群当中
(3)在server3上面
server3是worker节点,将server3也加入集群当中
(4)在server1上面
docker node ls集群已经创建好了
server1是管理节点,可以看到基本的swarm集群已经搭建成功
(5)在server1、server2、server3上面
导入nginx镜像
docker images
docker tag nginx:1.16 nginx
docker images
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。