本文讲的是<b>尝鲜 | 在Docker中运行你的Mesos集群</b>,【编者的话】本文介绍了在Docker中运行Apache Mesos,Mesos官方网站提供了安装包来直接运行它,但文中尝试使用Docker来运行Mesos,Mesosphere也提供了相应的镜像。在Docker中运行Mesos也有它的好处,读者可以尝试下。
在容器中安装Mesos可以帮助我们解决一个非常实际的问题,我们可以在任意版本的主机系统上运行Mesos和它的框架,包括各种测试版本。因为基于容器,问题就转化为只需要在主机上运行不同的Docker镜像。
让我们来看一下配置过程的有趣部分,通过Docker来运行Mesos、Marathon和Zookeeper。
简而言之,带<code>MESOS_</code>前缀的变量保存配置的值,我们一般会写到主机<code>/etc/mesos*</code>目录下的配置文件。
在集群中的每台主机上运行主节点容器。
对于Mesos从节点,配置有点复杂,主要是需要确保从节点可以访问主机上的Docker后台进程(同一个后台进程用来运行这个Mesos从节点实例)。通过挂载<code>/var/run/docker.sock</code>文件,<code>/usr/bin/docker</code>执行文件和<code>/sys</code> 目录(只读)到Mesos从节点容器实现。请注意,这还不是一个完美的解决方案,例如当从Marathon运行另一个Mesos框架,需要再进行细微调整。
在这个配置中,运行容器化的ZooKeeper需要一点小技巧。在第一个节点以“standalone” 模式运行,等其它所有节点ZooKeeper实例能连接到它并运行正常,ZooKeeper接着会自动重新配置它自己向所有节点同步。
因为我们想运行应用容器和其它框架,我们在Mesos之上安装“datacenter init system” Marathon框架。
注意,我们指定Marathon UI 运行在8080端口,监听5051端口。我们运行任意版本镜像并传递两个强制参数:
<code>master</code> – quorum hostname/ip and Mesos registration path
<code>zk</code> – quorum hostname/ip and Marathon registration path
这样就可以在Docker容器中运行Mesos集群的关键组件了。除了运行不同版本的组件,这个我们最大的动机,这种方式自然而然的带来在集群管理层次容器化的所有好处:快速部署,维护简单和设备可移植性。
原文发布时间为:2015-09-04
本文作者:unodba
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:尝鲜 | 在Docker中运行你的Mesos集群