Mesos介绍
概述
Mesos 是跨集群管理 CPU,内存以及其他资源的编排平台。Mesos 使用容器化技术,比如 Docker 和 LXC,来达到以上目的,同时它还提供了实时 API,可以用来和集群交互并且辅助开发。
Mesos 提供了功能跨越了 Iaas 基础架构即服务以及 Paas 平台即服务,以便达到系统级别上更高的效率。
运行在 Mesos 上的应用称为框架,一个框架由两个部分组成,控制器部分称为调度器,工作单元部分称为执行器。
调度器就是以 Mesos 协议通信的一个简单进程。通常调度器在 Marathon 上运行,但是有必要考虑如何确保调度器的高可用性。当调度器首次启动的时候,会连接 Mesos 集群,这样才能使用集群的资源,调度器运行之后,会给 Mesos 发送请求,启动它认为合适的执行器。
当调度器想要完成某些工作的时候,就会启动执行器,执行器仅仅是调度器的工作单元,调度器随后会决定给执行器发送一个或多个任务,执行器会独立完成这些任务,任务完成后向调度器发送状态更新。
Mesos 集群由爱玲个组件组成,Mesos master 和 Mesos slave。master 是协调集群的软件,slave 则在容器里直行代码。
为了使 master 能够以最小延迟提供 UI 以及任务相关的数据,所有任务元数据都驻留在内存里。意味着 master 节点必须拥有足够的内存。部分任务的元数据可以做持久化,比如利用 Mesos 的监控系统 Satellite 来自动把任务元数据复制到数据库里。
slave 主要是启动并且管理执行器的容器,提供 UI 来访问容器内数据,可以和本地执行器通信,从而管理和 master 的通信。
关于 checkpoint 的啥名字叫碰个面选择,一是 slave 能够周期性地将自身状态以及任务和执行器的状态写入快照,这样重启 slave 就不需要杀死所有任务和执行器,slave 升级之后可以简单读取检查点的文件,通过重新连接到已有执行器上从而接替之前版本的工作,就可也以快速完成 slave 的滚动重启,并且不需要终止任何单个任务。
关于调度器
调度器是直接和 mesos 主 master 交互的组件,调度器有四大职责
- 在接收到的 offer 上启动任务
- 处理这些任务的状态更新,特别是响应任务的故障和崩溃
- 持久化状态,并且管理故障恢复,从而实现高可用性
- 和客户端、用户,后者其他系统交互
关于执行器
它是和 mesos master 以及框架客户端交互的组件,能够管理运行着的任务并且故障转义,执行器有三大职责
- 执行调度器所请求的任务
- 保证通知调度器这些任务的状态
- 处理来自调度器的其他请求