通过Docker来部署Mesos集群

本文讲的是通过Docker来部署Mesos集群,【编者的话】Apache Mesos系统是一套资源管理调度集群系统,可以用来管理Docker集群,换个思路,本文介绍了如何通过Docker容器来部署一个单节点和多节点的Mesos集群,整个过程非常简单,只需要七个命令即可完成,整个步骤作者也记录到了GitHub,推荐学习。

这篇文章将教你如何使用Docker容器部署一个单节点的Mesos集群,整个部署过程非常简单,只需要七个命令。在部署之前你需要准备一个装有Docker的环境,这个非常简单,我不赘述。我们总共需要启动四个容器,分别是:

  • ZooKeeper
  • Meso Master
  • Marathon
  • Mesos Slave Container

如上面提到的,我们只需要一个可以运行的Docker Server,你可以通过任何你喜欢的方式来获得Docker,比如在本地的Vagrant中安装Docker、使用Boot2Docker、使用CoreOS或者在AWS安装。整个的部署过程我都放到了GitHub上了,包括所有的容器构建的Dockerfile文件, 你可以本地去构建这些镜像, 或者从Docker Hub上下载已经构建好的镜像。我们所使用的是Docker Hub上的镜像是:

部署步骤

第一步:获取Docker Server的IP,并赋值到HOST_IP变量中,在接下来的步骤中我们还会用到。

root@docker-server:/# HOST_IP=10.11.31.7

第二步:启动ZooKeeper容器。

docker run -d \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
garland/zookeeper

第三步: 启动Mesos Master。

docker run --net="host" \
-p 5050:5050 \
-e "MESOS_HOSTNAME=${HOST_IP}" \
-e "MESOS_IP=${HOST_IP}" \
-e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_PORT=5050" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_QUORUM=1" \
-e "MESOS_REGISTRY=in_memory" \
-e "MESOS_WORK_DIR=/var/lib/mesos" \
-d \
garland/mesosphere-docker-mesos-master

第四步: 启动Marathon。

docker run -d \
-p 8080:8080 \
garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos \
--zk zk://${HOST_IP}:2181/marathon

第五步: 启动Mesos Slave。

docker run -d \
--name mesos_slave_1 \
--entrypoint="mesos-slave" \
-e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_LOGGING_LEVEL=INFO" \
garland/mesosphere-docker-mesos-master:latest

第六步: 访问 Mesos 页面。
Mesos Web 页面地址是: 

http://${HOST_IP}:5050

第七步: 通过Marathon的Web页面启动一个Job。Marathon Web页面地址是:http://${HOST_IP}:8080。

Marathon 可以让你部署长期运行的Job到Mesos Slave容器上, 这个可以帮助你去检查你的集群是否启动,并且处于running的状态, 打开上面的地址后你会看到下面的页面:

点击右上角的“New App”按钮,创建一个新的Job/Task, 我们这里只是输出一个”hello“到文件"/tmp/output.txt"里面,然后我们可以到容器中查看文件是否创建,并检查下这个Job是不是一直在运行。

第八步: 检查Job/Task是不是在运行
接下来让我们检查下Job/Task是不是一直在Mesos Slave上面运行。
在Docker Server上运行下面的命令, 这个命令会让你进到Mesos Slave 容器中,然后再使用tail命令查看/tmp/output.txt文件里面的内容。

docker exec -it mesos_slave_1 /bin/bash
root@ca83bf0ea76a:/# tail -f /tmp/output.txt

你会看到每隔一秒钟“hello”就会被追加到这个文件中。

注意:多节点的Mesos环境部署步骤请参考这里

原文链接:Deploy a Mesos Cluster with 7 Commands Using Docker(翻译:左伟 校对:李颖杰)

原文发布时间为: 2015-01-12

本文作者:左伟 

本文来自合作伙伴DockerOne,了解相关信息可以关注DockerOne。

原文标题:通过Docker来部署Mesos集群

时间: 2024-10-23 19:51:36

通过Docker来部署Mesos集群的相关文章

7条命令在docker中部署Mesos集群

7条命令在docker中部署Mesos集群   所有使用的Docker容器构建文件是有也.您可以在本地构建每个容器或只使用位于Docker Hub预构建的容器.下面的命令会自动下载所需的预建的容器为您服务.ZooKeeper - https://registry.hub.docker.com/u/garland/zookeeper/Meso Master - https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-mas

如何使用Docker Machine部署Swarm集群

大家好,今天我们来研究一下如何使用Docker Machine部署Swarm集群.Docker Machine提供了标准的Docker API 支持,所以任何可以与Docker守护进程进行交互的工具都可以使用Swarm来(透明地)扩增到多台主机上.Docker Machine可以用来在个人电脑.云端以及的数据中心里创建Docker主机.它为创建服务器,安装Docker以及根据用户设定来配置Docker客户端提供了便捷化的解决方案.我们可以使用任何驱动来部署swarm集群,并且swarm集群将由于

尝鲜 | 在Docker中运行你的Mesos集群

本文讲的是尝鲜 | 在Docker中运行你的Mesos集群,[编者的话]本文介绍了在Docker中运行Apache Mesos,Mesos官方网站提供了安装包来直接运行它,但文中尝试使用Docker来运行Mesos,Mesosphere也提供了相应的镜像.在Docker中运行Mesos也有它的好处,读者可以尝试下. 很多人都已经开始在Apache Mesos中运行容器化的应用,我们也是这样.尽管我们尝试在容器中运行应用,但我们还是通过传统的安装包来在自己的主机上安装Mesos.尽管这是最简单和直

Shell脚本快速部署Kubernetes集群系统

  本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本.   运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog

如何使用Docker Machine创建Swarm集群

本文讲的是如何使用Docker Machine创建Swarm集群,[编者的话]之前,Docker的安装流程非常复杂,用户需要登录到相应的主机上,根据官方的安装和配置指南来安装Docker,并且不同的操作系统的安装步骤也是不一样的.而有了Machine后,不管是在笔记本.虚拟机还是公有云实例上,用户仅仅需要一个命令就轻松搞定安装.当然那你需要先安装Docker Machine.Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker

使用Docker容器搭建Jenkins集群

本文讲的是使用Docker容器搭建Jenkins集群[编者的话]本文使用Jelastic Cloud搭建了Jenkins作业环境,包括手动部署和自动部署两个方式,对Jelastic Cloud感兴趣的用户,可以尝试注册一个免费账户,进行试验. 如果不太了解Jenkins,可以先了解如何"手动设置Jenkins"一节. 如果想自动部署,可以去了解 "自动化"一节. Jenkins,由于其管理大量节点,以及执行器(executor)对大量创建和部署提供响应的能力成为很热

用Docker构建分布式Redis集群

本文讲的是用Docker构建分布式Redis集群,[编者的话]本文介绍了如何使用Docker搭建Redis集群,很多读者都在问Docker能带来哪些实质性的好处,我想本文就是一个很好的例子.不使用Docker你也可以搭建Redis集群,那使用Docker后会有怎么样的优势了?我想可以用两个词总结:快速和复用. 我们经常会遇到这样一个问题:当我们想进行一个完整的测试的时候,往往缺少硬件或者其它资源.为了满足需求,我可能需要三台服务,或者说三个虚拟机.但是我发现我们没有时间来创建它们,并且如果要物理

《Storm企业级应用:实战、运维和调优》——2.3 安装部署Storm集群

2.3 安装部署Storm集群 Storm的安装.部署过程分为安装依赖.安装Storm.启动和查看安装等几个部分.其中,前两部分内容在三个节点上都是一样的,只要在启动时区分开角色即可.接下来将讲解Storm集群的安装过程.2.3.1 安装Storm依赖库 在Nimbus和Supervisor的节点上安装Storm时,都需要安装相关的依赖库,具体如下: ZeroMQ 2.1.7. JZMQ. 其中,ZeroMQ推荐使用2.1.7版本,请勿使用2.1.10版本.官方解释是因为该版本的一些严重Bug会

mapreduce-solaris部署hadoop集群跑wordcount报错

问题描述 solaris部署hadoop集群跑wordcount报错 solaris部署hadoop集群跑wordcount报错, 信息如下: [admin@4bf635fa-5f3e-4b47-b42d-7558a6f0bbff ~]$ hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output 15/08/20 00:48:09 WARN