Docker Swarm 介绍node
Swarm 简介docker
Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是做为一个独立服务存在,在Docker Engine v1.12中集成了Swarm的集群管理和编排功能。能够经过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。安全
Swarm 两种角色服务器
Manager:接收客户端服务定义,将任务发送到worker节点;维护集群指望状态和集群管理功能及Leader选举。默认状况下manager节点也会运行任务,也能够配置只作管理任务。网络
Worker:接收并执行从管理节点分配的任务,并报告任务当前状态,以便管理节点维护每一个服务指望状态。负载均衡
Swarm特色加密
1. Docker Engine集成集群管理spa
使用Docker Engine CLI 建立一个Docker Engine的Swarm模式,在集群中部署应用程序服务。设计
2. 去中心化设计orm
Swarm角色分为Manager和Worker节点,Manager节点故障不影响应用使用。
3. 扩容缩容
能够声明每一个服务运行的容器数量,经过添加或删除容器数自动调整指望的状态。
4. 指望状态协调
Swarm Manager节点不断监视集群状态,并调整当前状态与指望状态之间的差别。例如,设置一个服务运行10个副本容器,若是两个副本的服务器节点崩溃,Manager将建立两个新的副本替代崩溃的副本。并将新的副本分配到可用的worker节点。
5. 多主机网络
能够为服务指定overlay网络。当初始化或更新应用程序时,Swarm manager会自动为overlay网络上的容器分配IP地址。
6. 服务发现
Swarm manager节点为集群中的每一个服务分配惟一的DNS记录和负载均衡VIP。能够经过Swarm内置的DNS服务器查询集群中每一个运行的容器。
7. 负载均衡
实现服务副本负载均衡,提供入口访问。也能够将服务入口暴露给外部负载均衡器再次负载均衡。
8. 安全传输
Swarm中的每一个节点使用TLS相互验证和加密,确保安全的其余节点通讯。
9. 滚动更新
升级时,逐步将应用服务更新到节点,若是出现问题,能够将任务回滚到先前版本
Docker Swarm 工做原理
Docker Engine client: -- 一、docker service create:咱们经过docker service create这个命令去建立一个服务。
swarm manager: -- 一、API:这个请求直接由Swarm manager的API进行接收,接收命令并建立服务对象。 -- 二、orchestrator:为服务建立一个任务。 -- 三、allocater:为这个任务分配IP地址。 -- 四、dispatcher:将任务分配到指定的节点。 -- 五、scheduler:再该节点中下发指定命令。
worker node:接收manager任务后去运行这个任务。 -- 一、container:建立相应的容器。 -- 二、worker:链接到调度程序以检查分配的任务 -- 三、executor:执行分配给工做节点的任务
Service:为一个副本,能够理解为是一个任务,一个任务是一个容器。
swarm manager:它将这个副本下发到三个可用的work节点。
container:实际的docker容器去运行应用。
task:work任务的名称为service名称后面跟.1根据个数以此类推。