首页 > 运维 > Docker > DockerSwarm 集群环境搭建(高可用)
2019
10-07

DockerSwarm 集群环境搭建(高可用)

1. 什么是docker swarm?

2. Docker Swarm 优点

相关概念

1. 节点

工作节点(workers)

工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。下图展示了集群中管理节点与工作节点的关系。

2. 服务和任务

  • replicated services (复制服务)按照一定规则在各个工作节点上运行指定个数的任务。
  • global services (全局服务)每个工作节点上运行一个任务。

两种模式通过 docker service create 的 –mode 参数指定。下图展示了容器、任务、服务的关系。

三、Swarm 集群

准备工作:

前期准备:

关闭selinux

设置系统主机名以及 Host 文件的相互解析

设置hosts文件相互解析(三台都要设置)

1.docker安装 传送门 (三台都要安装)

2. 初始化swarm

把第一台机器swarm-master充当管理节点,第二台swarm-node1 、第三台swarm-node2作为工作节点。

上面输出的这一段就是其他工作节点加入集群的命令:

如果你的 Docker 主机有多个网卡,拥有多个 IP,必须使用 –advertise-addr 指定 IP。

执行 docker swarm init 命令的节点自动成为管理节点。

命令 docker info 可以查看 swarm 集群状态:

命令 docker node ls 可以查看集群节点信息:

3. 工作节点加入 swarm 集群

在工作节点执行(注意你的防火墙,最好关掉防火墙)

node2,node3都加入集群

在管理节点查看

为了高可用,我们升级工作节点为管理节点。

这时我们再看集群的节点信息

4. 退出 Swarm 集群

集群上部署应用

部署实例:

查看集群上的服务

1.可以通过scale 来指定运行容器的数量。 为服务扩容(缩融)scale

我通过docker service ls 可以看出 nginx 的副本变成了2个

2.工作节点排除manager,manager只作为管理节点

3.过滤不正常状态

排除manager后,其上面运行的服务会转移到其他节点

四、滚动更新服务

例如升级服务的镜像版本

滚动更新:

更新完成后新版本和历史记录都能查看

查看配置信息:

 五、服务更新和回滚策略

如果执行后查看状态不是设置的,可以在update一下,将服务状态设置为自己想要的

查看状态:

服务更新

和上述设置的策略一致,两两更新

更新完成:

手动回滚(策略是失败会回滚,现在没有失败)

刚才nginx版本已经是1.13了,现在将其还原到1.12.1 

手动回滚完成

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。