『高级篇』docker之服务编排了解Mesos(22)

栏目: 编程工具 · 发布时间: 7年前

内容简介:Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。http://mesos.apache.org/在你的数据中心 运行数据(很多台数据的集合),就像运行在单个的资源池一样

Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。

初见

http://mesos.apache.org/

在你的数据中心 运行数据(很多台数据的集合),就像运行在单个的资源池一样

Mesos 抽象出来CPU,内存,磁盘和其他计算机资源从物理机或者虚拟机中,使具有容错的和可伸缩的系统更容易的构建和简单的运行。如果是没有基础的老铁,可能是认为是直接把服务器的硬件插拔出来重新组建一台新的机器,其实不是这样的,他是通过软件的方式把需要的硬件设备抽取出来,统一的调度,合理的利用这些资源。

『高级篇』docker之服务编排了解Mesos(22)

发展历程

  • 起源

    >当twitter才开始的时候网站经历了爆炸式的增长,网站很不稳定。经常被流量击垮,每次网站挂的时候都会出现下面这张图片,看的多了大家都比较顺眼了,导致这张图也火了,“失败之鲸”! 为了解决这个失败之鲸的教育,twitter通过google的Borg系统中得到启发,然后就开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”!后来他们注意到加州大学伯克利分校AMPLab正在开发的名为Mesos的项目,这个项目的负责人是Ben Hindman,Ben是加州大学伯克利分校的博士研究生。后来Ben Hindman加入了Twitter,负责开发和部署Mesos。现在Mesos管理着Twitter超过30,0000台服务器上的应用部署。最后twitter把Mesos开源给apache。

『高级篇』docker之服务编排了解Mesos(22)

  • 版本迭代

    >保持一个月更新一个版本的频率,知道今天也依然保持这这个频率目前最新版本:1.7.0,由此也可以看到对市场的信心!

  1. 2013年1月份发布了0.12.1版本
  2. 中间经历了30多个版本
  3. 2016年7月份发布了1.0.0
  • 两级调度

    >Mesos是如何让twitter摆脱失败之鲸呢,查看下图

  1. Mesos master是支持高可用集群的,通过zookeeper完成的主节点选举
  2. Mesos master管理所有节点的Mesos slave的守护进程
  3. Mesos slave运行在物理机或者虚拟机之上。每个运行具体的任务或者是服务
  4. 每个salve在启动的时候都会注册是master
  5. master协调每个节点的slave,并且确定每个slave的可用资源
  6. 第一级调度 Hadoop 和Mpi ,master 调度slave
  7. 第二级调度 Framework的组件组成,大家看下下图的虚线部分,Framework包括调度器和执行器两部分,Master可以跟多种Framework进行通信,上边展示的调度器也就Hadoop 和 MPI,还可以用多种。下边展示的是执行器,执行器运行在slave中。

『高级篇』docker之服务编排了解Mesos(22)

  • 调度的流程

    >看下图

  1. slave1也就是Agent1告诉master空闲资源有4cpu,4gb
  2. Mesos触发调度资源分配模块,请求分配4cpu,4gb,Framework1要求使用可用资源,然后master发出要约描述了slave1中所有的可用资源。4cpu,4gb内存
  3. Famework的调度器给master说需要在slave上运行2个task,task1(2cpu,1gb)
    task2(1cpu,2gb)
  4. Mesos向slave下发任务,并且分配适当的资源,给Franmework的执行器,接下来有执行器启动这2个任务,fw1,task1; fw2,task2;

这时候slave1 还剩余1cpu,1gb没有被占用,还可以继续分配给其他的任务来运行,其实调度器就是给Mesos谈判资源的,看看你有多少资源,需要运行一个程序看看资源够不够,如果够的话,我会告诉你我要在那台机器上进行运行,然后把执行器告诉master,master把执行器告诉slave,在slave上执行,执行器其实可以理解为一段代码,可以给master和slave对接的代码。为了实现一个slave中运行多个任务,Mesos使用了隔离模块,这模块使用了进程隔离的机制来运行这些任务。Mesos早在09年就开始使用了 linux 的隔离技术,后来Mesos增加了对 docker 的支持,就可以使用docker本身的隔离机制,单不管使用什么隔离机制都需要执行器全部的打包,并且发送给响应的slave,slave上启动。

『高级篇』docker之服务编排了解Mesos(22)

Marathon

mesos 并不能单独的存在,必要要有Framework配合存在,也知道mesos有各种各样的Framework负责运行各种各样的程序,Marathon适合长期运行的项目(数据库,应用服务等等),下面这个图就是mesos+Marathon和linux内核的对比。

『高级篇』docker之服务编排了解Mesos(22)

整合mesos marathon 负载均衡 服务发现的流程

『高级篇』docker之服务编排了解Mesos(22)

Mesos特征

  • 强大的资源管理

    Mesos的核心,保证集群内的所有用户平等的使用资源,这里的资源包括内存和CPU,磁盘等等。

  • Kernel 和Framework的分离

    Mesos只负责的资源的调度管理,各种程序都使用Mesos里面的资源,也可以自己来开发Framework。

  • 门槛较低,易于使用

    门槛低是相对其他的服务编排工具,环境比较容易搭建按照文档基本不会遇见大问题,如果使用长期运行的服务可以使用Marathon这种服务就可以了。Marathon的环境搭建比较容易上手很快就搭建完毕了。如果你有特殊场景需要自己开发Framework

    ,恭喜你老铁你中奖了,门槛太高!

  • 大厂使用

    twitter创始人30万以上的服务在使用,apple的集群,youtube也使用了。国内的爱奇艺,数人科技也都使用的。

Marathon特征

  • 高可用

    支持集群

  • Constraints

    给机器打标签,CPU高,内存高,硬盘好的,然后资源要约的时候给指定标签的机器。

  • 服务发现和负载均衡

    相当于服务的注册中心。

  • 健康检查

    执行调度器的时候,有针对机器的健康检查的功能,包括三种方式:http,tcp,shell命令的,比如:web服务要加入基于http的健康检查,访问固定的页面,如果访问的是200的话,服务是没问题的。如果访问连续多少次发现不健康也就是不是200的情况,停止重新启动一个服务。

  • 事件订阅

    自己启动一个服务,注册事件订阅,它就会自动的推送订阅的事件信息,包括服务停止,被杀掉等等吧。

  • 完善的REST API

    比较好看的UI页面,api接口提供给调用者查看服务的状态。每个服务运行的实例,每个实例的状态,可以通过脚本集成API。

PS:这就是对Mesos和marathon 大概的理解。

百度未收录

>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

>>原文链接地址:上一篇:

已是最新文章


以上所述就是小编给大家介绍的《『高级篇』docker之服务编排了解Mesos(22)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Paradigms of Artificial Intelligence Programming

Paradigms of Artificial Intelligence Programming

Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95

Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码