swarm简介:
Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。
一、基本概念:
运行 Docker 的主机可以主动初始化一个 Swarm 集群或者加入一个已存在的 Swarm 集群,这样这个运行 Docker 的主机就成为一个 Swarm 集群的节点 (node) 。
节点分为管理 (manager) 节点和工作 (worker) 节点。
管理节点用于 Swarm 集群的管理,docker swarm 命令基本只能在管理节点执行(节点退出集群命令 docker swarm leave 可以在工作节点执行)。一个 Swarm 集群可以有多个管理节点,但只有一个管理节点可以成为 leader,leader 通过 raft 协议实现。
工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。
二、服务和任务:
任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务 (Services) 是指一组任务的集合,服务定义了任务的属性。服务有两种模式:
replicated services 按照一定规则在各个工作节点上运行指定个数的任务。
global services 每个工作节点上运行一个任务
两种模式通过 docker service create 的 --mode 参数指定
实验环境:
rhel7.3 selinux和iptables均为disabed状态
172.25.254.1 server1
172.25.254.2 server2
172.25.254.3 server3
172.25.254.44 物理机
在server1上做初始化
在server2和server3上做初始化。是为了加入server1的集群中:
在server1上查看节点信息:
在三个server上安装 nginx
server1上,在manager节点部署nginx服务,服务数量为3个,公开指定端口为8080映射容器80,使用nginx镜像
先做好解析,每台机子上都要做好
docker service create --name nginx --publish 80:80 --replicas 3 nginx #3创建nginx服务
在浏览器上输入三台服务机的ip,均可以访问nginx
实现负载均衡
此时,在server1上,需要一个visualizer.tar
在server1上,创建viz服务并开启
查看
在server2上
在server3上
在主机上查看此时负载均衡成功:
浏览器访问http://172.25.254.1:8080/查看三台主机的nginx负载均衡
此时不论关闭任何一台服务机,此时的负载均衡就会出现在另外两个主机上实现