Mesos 简单介绍

Posted on 2016-3-1 in Others

Apache Mesos 是一个集群管理工具,它为集群中的工作节点提供资源隔离和管理。

Apache Mesos 架构

Mesos 架构图

一个 Mesos 集群由主要由四个部分组成:

  • Zookeeper
  • Mesos masters
  • Mesos slaves
  • Frameworks

对各个部分作一个简单的说明。

Zookeeper
Apache Zookeeper 是一个集中配置管理工具。
Mesos 使用 Zookeeper 来选举 master leader 以及添加 slave 节点到集群中。

Mesos master
Mesos master 是 Mesos 中控制集群的节点。
一个集群通常会有多个 Mesos master 来容错,但只有一个节点会被选为领袖节点(leading master)。

Mesos slave
Mesos slave 是 Mesos 中向集群提供资源的节点。
它们是“工作”节点 - 任务由 master 指派给 slave。

Framework
准确来说,Mesos 只提供集群中基本的“内核”一层。它本身并不请求资源或者执行任务,耳饰由其他框架(frameworks)来做这些事情。
Mesos 上运行的框架一般包括两个部分: 一个调度器(shceduler)注册到 master 来请求资源,以及一个运行在 slave 节点上用来执行框架人物的执行(executor)进程。

资源供给示例

Mesos resource usage example

我们看看这张图的含义:

  1. Slave 1 向 master 报告,我这里有 4 CPUs 和 4 GB 的内存可用啊。Master 然后看看已经注册的分配策略模块,发现,噢!应该给 framework 1 分配所有可用的资源。
  2. Master 向 framework 1 发了一份可用资源(resource offer)描述,slave 1有 4 CPUs 和 4 GB 内存可用!
  3. Framework 1 的调度器回复 master,我知道啦,我需要 slave1 帮我执行两个任务,第一个任务需要 2 CPUs 和 1 GB 内存,第二个任务需要 1 CPU 和 2 GB 内存。
  4. 最后,master 将两个任务送给 slave,并分配了相应的资源给 framework 的执行器来执行任务。那么还剩下的未分配的 1 CPU 和 1 GB 内存,就会被提供给 framework 2 来使用。

当任务完成并且有新的资源可用时,资源分配进程(resource offer process)会重复以上的工作。

Reference