Docker三剑客之docker-swarm
环境信息:
1、三台主机
2、一台作为主节点
3、剩余两台作为辅助节点
一、Docker swarm
(一)什么是Docker swarm?
Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。
Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少。
(二)为什么要使用Docker swarm?
使用Docker swarm集群管理工具,可以使得Dokcer集群的管理更加简单方便。
二、Dokcer swarm命令行功能的使用
dicker swarm是集成在Docker中的命令,用起来十分方便
(一)初始化,在主节点上执行命令。
server1
1、将server1初始化为主节点
docker swarm init
初始化为管理节点之后,便会开启2377端口
(二)辅助节点设置
server2
server3
在主节点查看集群信息,可以看到server1是主节点。
三、Docker swarm调试使用
(一)nginx的部署:
docker service create -p 80:80 --replicas 3 --name web nginx
(二)dokcer service的查看
docker service ps web
可以看到每个机器上面均匀分布。
(三)负载均衡的测试
负载均衡的测试需使用哪个节点的IP进行测试?其实使用任意节点的ip地址都是可以的
为了更好的感受到测试的结果,在每一个容器中写入发布文件的内容
将写好的页面使用命令发送到容器内部的默认发布目录下。
这里的拷贝的时候需要使用到容器的id,使用docker ps查看
四、容器的拉伸
在生产环境中,如果三个容器不够用了,那么还有一个很方便的功能,将部署容器的个数进行拉伸。
docker service scale web=6
五、可视化监控镜像visualizer
(一)可视化监控配置
我们可以在github上查找相关的visualizer文档:
https://github.com/dockersamples/docker-swarm-visualizer
(一)visualizer的安装
可视化监控镜像我们可以只安装在管理节点上,但是也可以选择安装在所有节点上,这样安装的好处就是,当管理节点挂掉了之后,他会自动漂移至别的节点上继续监控
完成之后可以作一个简单的监控,使用名字叫visualizer的镜像,下载之后按照官方文档进行操作。
docker service create
–name=viz
–publish=8080:8080/tcp
–constraint=node.role==manager
–mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock
dockersamples/visualizer
(二)软件的使用
部署完成之后就可以在web端进行查看,输入任意一台机器的ip均可,但是注意端口,我们将端口映射为8080。所以打开也要加端口号。
当拉伸为奇数个镜像的时候,他会根据目前每个主机容器中镜像的数量选择分布在哪儿
实时监控。当某一台出现问题的时候,可视化软件会很快
显示出问题。
值得注意的是,当server3回复正常之后,原本server3上的业务并没有回迁
(三)镜像的更新
在生产环境当中,肯定会有服务版本的升级或者上下线服务,那么dokcer中如何进行这个操作呢?
docker service update --image game2048 --update-parallelism 3 --update-delay 3s web
需要注意的是,我们在更新的时候,主机上是需要存在更新后的镜像的