什么是Mesos? 类似Linux kernel一样,是一个分布式系统Kernel,用来管理数据中心资源。他源于Google的Borg。大体思路就是master管理协调slaves,slaves是worker。每个slaves用cgroup或docker等来隔离。复杂的框架通过API和master进行资源协调。
Mesos架构
(1) Mesos-master:Mesos master,主要负责管理各个framework和slave,并将slave上的资源分配给各个framework
(2) Mesos-slave:Mesos slave,负责管理本节点上的各个mesos-task,比如:为各个executor分配资源
(3) Framework:计算框架,如:Hadoop,Spark等,通过MesosSchedulerDiver接入Mesos
(4) Executor:执行器,安装到mesos-slave上,用于启动计算框架中的task。
当用户试图添加一种新的计算框架到Mesos中时,需要实现一个Framework scheduler和executor以接入Mesos。
Mesos资源分配流程
Agent向master汇报空余资源。master告知使用者(框架调度器)空余资源。调度器发任务给master。master发任务给agent。简单任务通过配置文件和自带的调度器即可。复杂任务需要实现自己的专用调度器。
最新更新
更新于2019年底:基本没有哪家公司还会在Mesos上大力投入了,连Mesos的掌舵公司都换名从事K8s服务业务了。
不可否认,Mesos是个不错的简单设计,很容易插拔适配已有的多种系统,如Hadoop和MPI等。然而市场的力量和谷歌的大力投入,K8s还是赢了,预计未来还会赢很久。