Mesos + Docker如何构建你自己的框架

  Apache Mesos是一个集群管理器,能够简化在一堆共享服务器池中运行任务的复杂性,Docker是一个轻量容器用来部署打包的服务,类似一个虚拟机,但是消耗资源很小。

  Mesos从0.20版本支持Docker,Mesos + Docker结合能够提供一个非常强大的在集群环境中部署应用和服务的平台。

  这篇教程将解释如何使用Mesos 02.0.1和Docker 1.2.0用Java编写一个简单Mesos框架,用于启动一些容器。

   一个典型的Mesos部署是有一个或几个运行mesos-master的服务器以及运行mesos-slave的集群服务器组成,从服务器注册到主服务器,并提供资源和容量用于运行任务,主服务器与被部署的框架交互,将那些资源提供其运行,或接受指令运行任务,或委托这些指令给从服务器。

mesos + docker

   多个框架能够并行被部署和在集群中分享资源,举例,Apache Spark和Cassandra 两个都有Mesos框架可用,允许它们两个部署在同一样的集群中。

   一个框架由一个调度器和可选一到多个执行器,调度器scheduler能够连接到mesos-master ,然后接受或拒绝从服务器提供的资源,也提供指令关于什么任务在那些从服务器上运行。

   Mesos对于运行的shell脚本有有缺省的执行器,自从0.20.0版本以后,为了加载docker 容器,它也可以用Java或其他语言编写执行器,在这种情况下,执行器binary (如果是Java则是jar 文件)必须在中央资源如HDFS可用,这样从服务器才能下载它们,当然,我们可以将执行器直接打包在一个Docker Image中,使得部署流程更简单。

   这个教程介绍如何开发一个框架,其中有调度器,能够在一个或多个从服务器上启动Docker容器,没有必要再开发执行器,缺省执行器将被使用。

   源码适用在github: https://github.com/codefutures/mesos-docker-tutorial

  更详细源码说明见英文