资讯专栏INFORMATION COLUMN

使用 Docker, 7 个命令部署一个 Mesos 集群

dadong / 3140人阅读

  

本文原文是 Deploy a Mesos Cluster with 7 Commands Using Docker

这个教程将给你展示怎样使用 Docker 容器提供一个单节点的 Mesos 集群(未来的一篇文章将展示怎样很容易的扩展这个到多个节点或者是见底部更新)。这意味着你可以使用 7 个命令启动整个集群!不需要安装任何东西除了一个正在运行的 Docker 服务器。

将启动 4 个容器:

ZooKeeper

Meso Master

Marathon

Mesos Slave Container

正如唯一要求提到的是有一个正在运行的 Docker 服务器。这意味着你可以启动一个本地的 已经安装 Docker 的 Vagrant box,使用 Boot2Docker,使用 CoreOS,AWS 上的实例,或者任何你可以获取到的 Docker 服务器。

在 Github repository 概述了这整个过程。

sekka1/mesosphere-docker

以上所有的 Docker 容器构建文件都在这里。你可以在本地构建每一个容器或者仅仅使用位于 Docker Hub 上的预构建容器。以下的脚本将为你自动下载需要的预构建容器。

ZooKeeper — https://registry.hub.docker.com/u/garland/zookeeper/

Meso Master — https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/

Marathon — https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/

让我们开始

第一步:或者 Docker 服务器的 IP 并导出到环境变量。我们将在随后的 Docker 命令中不断地使用这个 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 的 webpage

依赖于你怎样设置的你的 Docker server 和它的 IP 地址,你或许不得不改变你输入到浏览器的 IP 但是端口是一样的。

Mesos webpage 将在这个地址:

http://${HOST_IP}:5050

这时候你将得到一个像这样的页面但可能在‘Tasks’ 表格没有任何的条目。

第七步:进入 Marathon 的 webpage 启动一个任务

Marathon 的 webpage 让你调度在 Meso Slave 容器长时间运行的任务。这是一个非常好的查看你集群是否在正常运行的测试。你可以这样看 Marathon 的 webpage:

http://${HOST_IP}:8080

点击在顶部右端的 “New App” 按钮会给你以下的菜单,你可以创建一个新的 job/task。我们简单的输出一个 hello 到一个文件中。我们可以进入到容器并检查该文件是否被创建以及该 job 是否在持续运行。

第八步:检查 job/task 是否正在运行

让我们检查 job/task 在 Mesos Slave 上是否正在持续运行。

在 Docker server 运行以下命令。它将让你进入 slave 容器并从那里 tail out 这 output.txt 文件。

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

你将看到 “hello” 每秒一次的被放入该文件中。

  

更新:我更新了该项目文档包含了怎样设置一个多节点的环境:https://github.com/sekka1/mesosphere-docker#multi-node-setup

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26360.html

相关文章

  • 技术干货 | 初次微服务体验:从Docker容器农场说起

    摘要:或许你的第一次微服务体验,就从本文开始在本文中,和等纷纷亮相,并配有详细的代码说明。该角色与本地网络及的配置设置相关。由于会在虚拟机初始化过程中自动执行配置任务,因此惟一的解决办法就是将相关内容提取至单独的剧本当中 这是一篇温和有趣的技术文章,如果你初识Docker,对微服务充满兴趣,不妨一读。或许你的第一次微服务体验,就从本文开始…… 在本文中,Mesos、Zookeeper、Ma...

    魏宪会 评论0 收藏0
  • DockerMesos 的前生今世 | 数人云CTO肖德时@KVM分享实录

    摘要:今天小数给大家带来一篇技术正能量满满的分享来自社区线上群分享的实录,分享嘉宾是数人云肖德时。第二级调度由被称作的组件组成。它们是最小的部署单元,由统一创建调度管理。 今天小数给大家带来一篇技术正能量满满的分享——来自KVM社区线上群分享的实录,分享嘉宾是数人云CTO肖德时。 嘉宾介绍: 肖德时,数人云CTO 十五年计算机行业从业经验,曾为红帽 Engineering Service ...

    0x584a 评论0 收藏0
  • Mesos安装篇(一)

    摘要:诞生于的一个研究项目,现已成为中的项目。是指外部的计算框架,如,等,这些计算框架可通过注册的方式接入,以便进行统一管理和资源分配。要求可接入的框架必须有一个调度器模块,该调度器负责框架内部的任务调度。 Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache Incubator中的项目。Mesos计算框架一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享...

    stormzhang 评论0 收藏0
  • 容器集群管理工具各项对比

    摘要:由谷歌开发,允许你在许多不同的主机上管理容器化应用程序。它已经被完全开源,谷歌在年首次宣布开发它,第一版在夏天的时候发布。除了最近几年的收获,本身也是基于谷歌内部十多年使用容器技术的经验。 基于云的基础设施,容器,微服务和新编程平台在世界范围占据了一大块媒体领域,横扫IT界。Docker、容器的使用在这几个月内呈爆炸式增长,已经提交了20亿的镜像pulls;镜像数在2015年11月就已...

    Faremax 评论0 收藏0
  • 基于Docker搭建多节点Mesos/Marathon

    摘要:摘要在之前的一篇博客中,我介绍了基于搭建单机版,但是仅仅使用了单个节点。具有容错功能当容器由于节点崩溃等原因意外停止运行时,会自动将容器调度到其他节点。因此,目前仅适合运行无状态的服务,而数据库等有状态服务应该单独部署。 摘要: 在之前的一篇博客中,我介绍了基于Docker搭建单机版Mesos/Marathon,但是仅仅使用了单个节点。而在这篇博客中,我将介绍基于Docker搭建多节点...

    ConardLi 评论0 收藏0

发表评论

0条评论

dadong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<