05 Docker平台的对比

Docker的3大编排工具:Mesos、Kubernetes、Swarm

容器落地时,Docker平台的核心在于编排工具的选择。

1.Mesos介绍

两个重要角色,一个是Slave,安装集群节点上。
一个是Master,作为集群的管理节点,slave会将节点的资源使用情况周期性的报告给我们的master节点。

05 Docker平台的对比_第1张图片
Mesos配合Framework进行集群管理和资源调度的流程

Mesos配合计算架构的FrameWork进行资源调度,过程如下:

  1. master会将计算机节点的资源使用情况周期性的报告给我们的Framework Scheduler
  2. Framework Scheduler进行调配后,下发部署的任务给集群节点
  3. 节点上的framework Executor获取任务进行容器的部署(在容器的架构中,Executor就是容器的引擎)
  4. 节点会将部署结果反馈给master
  5. Master会更新主机资源的状态给Framework Scheduler

Mesos+Marathon+Zookeeper
Marathon是一个可以调用Docker引擎的framework,可以将容器按照一定的调度策略部署到合适的主机上。

Zookeeper的作用是保证Marathon和 Mesos来管理节点的高可用性,即当master节点宕机之后,可以快速的选取出新的master节点,从而不影响逻辑架构。Zookeeper本身是一个分布式的高可用的架构。

2.kubernetes的介绍(Goolge的开源容器管理项目)

05 Docker平台的对比_第2张图片
Pods
  • 【重点】:Mesos中的最小的单元是容器,但是kubernetes的最小的单元是Pod。容器被封装在Pod中,一个Pod中可以存放一个或者多个容器。

  • 设计Pod的目的是:将需要紧密联系的Docker容器放置在一个独立的空间内(Pod)。

  • kubernetes整体架构:在部署 kubernetes(?)之前,需要先部署Etcd作为集群的管理工具

05 Docker平台的对比_第3张图片
Kubernetes架构
  • 2个重要的角色:minion(普通节点)和master(管理节点)。
    minion节点上的kubelet会结合etcd和cAdvisor将节点信息汇总到Master中。
    Master使用Schedule会按照一定的调度策略将Pod调度到各个minion上,使用Replication Controller来控制Pod的数量和伸缩,使用Service来分配Pod的IP和处理Pod的负载均衡。
    Master提供了统一的访问接入口,可以通过web(?)或者commands对kubernetes进行管理。
    通过kubernetes的统一管理实现了六个功能

3.Swarm的介绍(Docker公司自己的容器管理工具)

1.12版本之后,Swarm已经封装进Docker引擎中,并且自带服务发现的功能

  • 2个重要角色:manager和worker node
    Swarm1.12之后,自带服务发现的功能,可以做到manager node的高可用性。
    Swam也内置了负载均衡的技术,使用的是LVS,功能强大,但是依然支持和其他服务发现的工具,如etcd等等。

4.Docker平台对比

05 Docker平台的对比_第4张图片
三大平台各具优势

你可能感兴趣的:(05 Docker平台的对比)