简单记录下Docker集群swarm使用。
Docker集群模式
docker swarm模式可以让多个运行docker的机器加入集群管理,加入集群的docker机器被称为node。整个集群被node为manager的角色管理,其他的node角色则为workers,所有workers接受manager的指令行事
Docker Swarm
集群机器可以是物理机也可以是虚拟机,由于资源匮乏。本文只有一个 swarm node
- Manager Node:当发布service到swarm中(提交到管理节点),管理节点将service分发到Worker Node,工作节点接收到task开始工作
- Worker Node:工作节点接受来自管理节点分发的任务并执行,同时会将自己当前的状态通知到管理节点,管理者能够管理集群中节点的状态。Manager Node同时也可以是Worker Node
- 开启swarm模式:
docker swarm init
- 离开swarm:
docker swarm leave --force
- Node工作方式
Services and tasks
- Services:任务的定义,创建service有两种模式。
replicated services
可以指定创建服务的副本数量由manager node分发到不同节点。global services
模式的服务将在集群中所有节点上运行- tasks:任务是管理节点分发运行的单元
- 构建副本服务:
docker service create --replicas 3 --name web nginx
,service只有在swarm模式下才能创建- 服务与任务的关系
- replicated services和global services
集群网络
docker swarm保证两种不同的通讯。管理通讯,如加入或是离开swarm
和 响应来自客户端的请求
- Overlay networks: 管理swarm模式下docker daemons间的通信,service同样也可以加入此网络使service间能够相互通信。此网络使用overlay网络驱动
- ingress network : 此网络提供了服务的负载均衡能力。当客户端请求服务,ingress network中内建的负载均衡模块(IPVS)会将请求负载到指定的IP服务。此网络使用overlay网络驱动
- docker_gwbridge: 此网络负责将Overlay networks和ingress network连通到docker daemon的物理网卡上,创建的service默认会连接到此网络。此网络使用bridge网络驱动
参考
I see you. - Jake Sully