Docker 17参考手册
引擎 | Engine
群集模式中的筏共识(引擎) | Raft consensus in swarm mode (Engine)
当Docker引擎以群模式运行时,管理器节点实施Raft一致性算法来管理全局群集状态。
为什么使用Docker swarm模式的原因是使用一个共识算法,以确保那些负责管理和调度任务集群中的所有节点的经理,都存储相同一致的状态。
在整个集群中具有相同的一致性状态意味着如果发生故障,任何Manager节点都可以提取任务并将服务恢复到稳定状态。例如,如果负责在集群中调度任务的负责人经理意外死亡,则任何其他经理都可以执行调度任务并重新平衡任务以匹配期望的状态。
使用共识算法在分布式系统中复制日志的系统需要特别小心。它们通过要求大多数节点同意值来确保集群状态在出现故障时保持一致。
Raft允许(N-1)/2
失败,并且要求大多数(N/2)+1
成员或法定成员的成员同意向群集提出的值。这意味着在一个由5个管理员组成的集群中,如果有3个节点不可用,系统将不会处理更多的请求来安排额外的任务。现有的任务将继续运行,但如果管理器集合不健康,则调度程序将无法重新平衡任务以应对失败。
集群模式中实现共识算法意味着它具有分布式系统固有的特性:
- 就容错系统中的值达成一致。(参考FLP不可能性定理和Raft共识算法论文)
- 通过领导人选举过程相互排斥
- 集群成员资格管理
- 全球一致的对象排序和CAS(比较和交换)基元
docker,容器,集群,swarm,raft
根据ApacheLicense,版本2.0获得许可。
Docker,Inc.和其他各方也可以在这里使用的其他术语中拥有商标权。
引擎 | Engine相关
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
主页 | https://docker.com/ |
源码 | https://github.com/docker/docker |
版本 | 17 |
发布版本 | 17.06 |