Docker Swarm 集群 | 8lovelife's life
0%

Docker Swarm 集群

简单记录下Docker集群swarm使用。

Docker集群模式

docker swarm模式可以让多个运行docker的机器加入集群管理,加入集群的docker机器被称为node。整个集群被node为manager的角色管理,其他的node角色则为workers,所有workers接受manager的指令行事

Docker Swarm

集群机器可以是物理机也可以是虚拟机,由于资源匮乏。本文只有一个 swarm node

  1. Manager Node:当发布service到swarm中(提交到管理节点),管理节点将service分发到Worker Node,工作节点接收到task开始工作
  2. Worker Node:工作节点接受来自管理节点分发的任务并执行,同时会将自己当前的状态通知到管理节点,管理者能够管理集群中节点的状态。Manager Node同时也可以是Worker Node
  3. 开启swarm模式:docker swarm init
  4. 离开swarm:docker swarm leave --force
  5. Node工作方式
    这里写图片描述

Services and tasks

  1. Services:任务的定义,创建service有两种模式。replicated services可以指定创建服务的副本数量由manager node分发到不同节点。global services模式的服务将在集群中所有节点上运行
  2. tasks:任务是管理节点分发运行的单元
  3. 构建副本服务:docker service create --replicas 3 --name web nginx,service只有在swarm模式下才能创建
  4. 服务与任务的关系
    这里写图片描述
  5. replicated services和global services
    这里写图片描述

集群网络

docker swarm保证两种不同的通讯。管理通讯,如加入或是离开swarm响应来自客户端的请求

  1. Overlay networks: 管理swarm模式下docker daemons间的通信,service同样也可以加入此网络使service间能够相互通信。此网络使用overlay网络驱动
  2. ingress network : 此网络提供了服务的负载均衡能力。当客户端请求服务,ingress network中内建的负载均衡模块(IPVS)会将请求负载到指定的IP服务。此网络使用overlay网络驱动
  3. docker_gwbridge: 此网络负责将Overlay networks和ingress network连通到docker daemon的物理网卡上,创建的service默认会连接到此网络。此网络使用bridge网络驱动

参考

Docker v17.09

I see you. - Jake Sully

Avatar