Docker 三剑客-------docker swam、visualizer监控、stack部署集群、Portainer可视化
文章目录
一、docker swarm
docker swarm简介
Swarm 是 Docker 公司研发的容器编排工具,用来管理 Docker 集群,它将一群 Docker 宿主机变成一个单一的,虚拟的主机。Swarm 使用标准的 Docker API接口作为其前端访问入口,换言之,各种形式的 Docker Client(docker client in go, docker_py,docker 等)均可以直接与 Swarm 通信
swarm集群:
swarm 集群构成 | 特性 | 负责任务 |
---|---|---|
管理节点(manager) | 整个集群的管理工作的负责节点 | 负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作,包括docker client的命令反馈,节点与仓库的镜像拉取,Docker swarm API进行交互等等 |
工作节点(worker) | swarm node | 负责使用docker守护进程管理多个容器,负责运行相应的服务来执行任务(task) |
Discovery 模块 | Swarm发现Docker集群中的节点的模块。 | discovery是Swarm中用于维护Docker集群状态的机制 |
Scheduler 模块 | Swarm内部的调度模块 | 初始化后,swarm通过发现机制发现所有注册的Docker Node,并收集到所有Docker Node的状态以及具体信息,此后将用此来进行Docker管理请求的处理转发 |
Swarm API模块 | 监听服务模块,可以将该模块抽象为Swarm Server | Swarm Server被初始化并完成监听之后,用户即可以通过Docker Client向Swarm发送Docker集群的管理请求 |
docker swam环境准备
主机域名(ip) | MANAGER STATUS | 配置 |
---|---|---|
server2(172.25.6.2) | manager(Leader/Reachable) | 见博客haproxy仓库 |
server3(172.25.6.3) | node1(worker1) | 同server2 |
server4(172.25.6.4) | mode2(worker2) | 同server2 |
server1(172.25.6.1) | 私人haproxy仓库 | 见博客haproxy仓库 |
结合haproxy仓库搭建(见博客),server1、server2配置与此博客相同,server3、server4的基本配置同server2
docker swarm部署
1.管理节点上的初始化
[root@server1 harbor]# docker swarm init ##生成加加入集群的指令,server1 为manager
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-65nnbf8kw2rwlftk488a492m4xq95s2leew0taqcwxlu1mlhv2-bgrxrhlkfkc29rstr0q078ns1 172.25.6.1:2377 #以woork身份加入集群的命令,在其他需要加入集群的节点执行此命即可
To add a manager to this swarm, run 'docker swarm join-token manager' andfollow the instructions.
#开启swarm集群,node1为管理节点,上面提示中给出了join woker的方式,如果要以manager身份加入集群,查看join-token,命令docker swarm join-token manager
server2,server3,server4节点加入集群,以worker身份
[root@server2 ~]]# docker swarm join --token SWMTKN-1-65nnbf8kw2rwlftk488a492m4xq95s2leew0taqcwxlu1mlhv2-bgrxrhlkfkc29rstr0q078ns1 172.25.6.1:2377
[root@server3 ~]]# docker swarm join --token SWMTKN-1-65nnbf8kw2rwlftk488a492m4xq95s2leew0taqcwxlu