Docker容器:资源管理调度和应用编排

发布于 2017-03-30 · 本文总共 1613 字 · 阅读大约需要 5 分钟

三种容器集群资源管理调度和应用编排技术

Mesos生态

核心组件包括Mesos容器集群资源管理调度以及不同的应用管理框架;典型的应用管理框架包括Marathon和Chronos;

Mesos生态主要由Mesosphere、Twitter等公司主力推动;

Kubernetes生态

由谷歌公司发起的开源项目;

Docker生态

Docker公司希望向容器生态系统上层发展,推出了Swarm容器资源管理调度组件,以及Compose应用编排组件;

Mesos生态

Mesos通过对数据中心资源的统一管理和分配,把整个数据中心抽象为一台大的计算机,使开发者不用关心资源的管理,只聚焦应用的开发;

同时,其打破了数据中心不同应用彼此独立的资源烟囱,提升了资源利用率;

Mesos两阶段资源分配

Mesos控制节点负责根据不同资源分配策略和算法,通过Resource Offer给已经注册的不同应用框架分配资源,完成第一阶段资源分配;

应用框架的调度器负责第二阶段资源调度:把本框架的不同任务调度到不同的Resource Offer上;

Mesos的两阶段资源调度实现了集群调度规模的可扩展性,以及应用框架资源调度策略和算法的灵活性;

Marathon容器应用管理平台

Marathon是MesosSphere公司开发的一个容器应用管理平台,面向Long-Running应用的部署和管理;

Marathon容器应用管理平台的核心能力包括:

1.架构HA:Marathon通过Zookeeper支持Active-Passive集群部署,保证高可用;

2.支持不同类型的容器运行时(runtime):包括Mesos容器和Docker容器;

3.支持有状态应用;

4.调度器

5.健康检查

6.事件订阅

7.监控

8.灰度升级

9.负载均衡和服务发现

Kubernetes

Google公司在2014年6月宣布开源的容器资源管理和应用编排引擎;

见Kubernetes相关内容

Docker生态

资源调度:Swarm

Docker公司发布三剑客中的一员,用来提供容器集群服务, 目的是更好的帮助用户管理多个Docker Engine,方便用户使用,像使用DockerEngine一样使用容器集群服务;

特点:

1.对外以Docker API接口呈现;

2.Swarm本身专注于Docker集群管理,非常轻量,占用资源也非常少;

3.插件化机制,Swarm中的各个模块都抽象出了API,可以根据定制实现需求;

4.与Docker发布同步;

架构

1.API

2.Scheduler

3.Cluster API

4.LeaderShip模块

5.Discovery Service服务发现模块

6.Swarm Agent

Swarm集群管理

swarm create创建一个集群ID;

swarm join将节点加入到集群;

swarm manage启动;

Swarm容器调度

用户容器创建时,会经过调度模块选择一个最优节点;

1.过滤

2.策略

Swarm服务发现

在Swarm中,服务发现主要用于节点发现,每一个节点上的Agent会将Docker Engine的IP端口注册到服务发现系统中; Manager会从服务发现模块中读取节点信息;

应用编排:Compose

Docker Compose的前身是Fig项目,Fig是Orchard的一个产品; 采用Python编写,提通过Apache2.0协议开源,Compose在2014年被Docker公司收购并成为官方支持的解决方案;

Docker编排服务的三驾马车:

1.Machine:安装部署Docker;

2.Swarm:容器集群管理;

3.Compose:容器应用的编排组织;

Compose是支持定义由多个容器组成的应用并运行启动的工具; 应用所涉及的容器规格以及容器之间网络、存储的配置由Compose规范进行描述,以YAML文件编写; 通过简单的命令行,用户可以创建并启动由该YAML描述的应用;

refs

《云计算架构–技术与实践》顾炯炯




本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:邱文奇(qiuwenqi)的博客;
内容系本人学习、研究和总结,如有雷同,实属荣幸!
阅读次数:

文章评论

comments powered by Disqus


章节列表