码迷,mamicode.com
首页 > 其他好文 > 详细

docker swarm 简易版

时间:2018-02-11 12:39:56      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:master   base   修改   mil   post   配置   ima   serve   ali   

节点名称 相关服务 ip地址
master1/node1 swarm manager(master) / consul/node 192.168.132.131
master2/node2 swarm manager(backup),node 192.168.132.133
node3 node 192.168.132.134

 

 

 

 

 

 下载镜像

Docker 官方已经提供了 Swarm 镜像使用,需要在所有被 Swarm 管理的 Docker 主机上下载该镜像。

$ docker pull swarm

 

可以使用下面的命令来查看 Swarm 版本,验证是否成功下载 Swarm 镜像。

$ docker run --rm swarm -v
swarm version 1.2.8 (48d86b1)

 

注意:在使用Swarm进行集群管理之前,需要进行一些简单配置,添加 Docker daemon 的网络监听:

需要先把准备加入集群的所有的节点的docker deamon的监听端口修改为0.0.0.0:2375,可以直接使用 docker –H tcp://0.0.0.0:2375 &命令,也可以在配置文件(/etc/default/docker)中修改(添加:-H 0.0.0.0:2375 –H unix:///var/run/docker.sock")

 

centos7 配置文件路径 /lib/systemd/system/docker.service修改完之后:

技术分享图片

 

然后重启docker服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker.service

 

启动集群

Docker 集群管理需要使用服务发现(Service Discover)功能Swarm 支持以下的几种方式:DockerHub、本地文件、etcd、consel、zookeeper 和手动指定节点 IP 地址信息等。

本地配置集群推荐使用 consel 作为服务发现后端。利用社区提供的 Docker 镜像,整个过程只需要三步即可完成。

 

启动 Consel 服务后端(master端

启动 consel 服务容器,映射到主机的 8500 端口。

$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

获取到本地主机的地址作为 consul 的服务地址:<consul_ip>:8500


启动管理节点(master端

首先,启动一个主管理节点,映射到主机的 4000 端口,并获取所在主机地址为 <manager0_ip>。其中 4000 端口是 Swarm 管理器的默认监听端口,用户也可以指定映射为其它端口。

#语法格式:
$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise <manager0_ip>:4000 consul://<consul_ip>:8500 [root@localhost ~]# docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.132.131:4000 consul://192.168.132.131:8500 e9721e5895e27866762b825e67f40d27ed4820e7aed7d7442d639e50bd37cc51

技术分享图片

 

为了提高高可用性,用户也可以启动从管理节点。假定获取所在主机地址为 <manager1_ip>

#语法格式与上面一样
$ docker run -d swarm manage -H :4000 --replication --advertise <manager1_ip>:4000 consul://<consul_ip>:8500 [root@localhost ~]# docker run -d swarm manage -H :4000 --replication --advertise 192.168.132.133:4000 consul://192.168.132.131:8500 9fde195d5a63667adfb42e49bebad72f2b4f0605c810f12dd60d23d05d73ad2a

 

启动工作节点

需要在每个工作节点上启动 agent 服务。

获取节点的主机地址为 <node_ip>,并指定前面获取到的 consel 服务地址。

#语法格式
$ docker run -d swarm join --advertise=<node_ip>:2375 consul://<consul_ip>:8500 [root@localhost ~]# docker run -d swarm join --advertise=192.168.132.133:2375 consul://192.168.132.131:8500  #此处133 为节点ip f0ab7702df27100d6c8dabef07456a78d5a8487eab6d0d49cb48c1c113dec57b

 

节点2(管理端2)

技术分享图片

 

节点3

技术分享图片

 

节点3(管理端1)

技术分享图片

 

节点启动后,用户可以指定 Docker 服务地址为 <manager0_ip>:4000> 来测试各种 Docker 命令,可以看到整个 Swarm 集群就像一个虚拟的 Docker 主机一样正常工作。

由于 Swarm 实际上是通过 agent 调用了本地的 Docker daemon 来运行容器,当 Swarm 集群服务出现故障时,无法接受新的请求,但已经运行起来的容器将不会受到影响。


集群测试:


查看所有的节点信息

技术分享图片

 

在任意节点上使用 docker run 来启动若干容器,例如

[root@localhost ~]# docker -H 192.168.132.131:4000 run -d finance/centos6.8-base ping 127.0.0.1
add0667ac57f563b2e2a8db7d705255993b91dd76440577a18819a9d6ac9ba76
[root@localhost ~]# docker -H 192.168.132.131:4000 ps

会随机在某个docker宿主机上启动 一个容器

技术分享图片

 

docker swarm 简易版

标签:master   base   修改   mil   post   配置   ima   serve   ali   

原文地址:https://www.cnblogs.com/FRESHMANS/p/8440772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!