设置docker/fig Mesos环境

JRu*_*Run 12 docker mesos fig apache-storm

我正在尝试建立一个docker/fig Mesos集群.我是无花果和Docker的新手.Docker有很多文档,但我发现自己很难理解如何使用fig.

这是我的fig.yaml:

zookeeper:
  image: jplock/zookeeper
  ports: 
  - "49181:2181"
mesosMaster:
  image: mesosphere/mesos:0.19.1
  ports: 
    - "15050:5050"
  links: 
    - zookeeper:zk
  command: mesos-master --zk=zk --work_dir=/var/log --quorum=1
mesosSlave:
  image: mesosphere/mesos:0.19.1
  links: 
    - zookeeper:zk
  command: mesos-slave --master=zk
Run Code Online (Sandbox Code Playgroud)

谢谢 !


编辑:

感谢Mark O`Connor的帮助,我创建了一个基于docker的工作台设置(+风暴,chronos等等).

享受,如果您觉得这很有用 - 请提供:https: //github.com/yaronr/docker-mesos

PS.请+1马克的答案:)

Mar*_*nor 28

您尚未指出您遇到的错误.

这是您正在使用的图像的文档:

Mesos基础Docker使用来自https://mesosphere.io/downloads/的Mesosphere软件包 .不启动Mesos,请使用mesos-master和mesos-slave Dockers.

我真正担心的是这些图像是不受信任的,没有立即可用的来源.

所以我使用mesosphere github作为灵感重新创建了你的例子:

更新的示例

更新示例以包含chronos框架

??? build.sh
??? fig.yml
??? mesos
?   ??? Dockerfile
??? mesos-chronos
?   ??? Dockerfile
??? mesos-master
?   ??? Dockerfile
??? mesos-slave
    ??? Dockerfile
Run Code Online (Sandbox Code Playgroud)

构建基本图像(只需要完成一次)

./build.sh
Run Code Online (Sandbox Code Playgroud)

运行fig以启动每个服务的实例:

$ fig up -d
Creating mesos_zk_1...
Creating mesos_master_1...
Creating mesos_slave_1...
Creating mesos_chronos_1...
Run Code Online (Sandbox Code Playgroud)

关于无花果的一个有用的事情是你可以扩大奴隶

$ fig scale slave=5
Starting mesos_slave_2...
Starting mesos_slave_3...
Starting mesos_slave_4...
Starting mesos_slave_5...
Run Code Online (Sandbox Code Playgroud)

mesos主控制台应显示5个从属运行

http://localhost:15050/#/slaves
Run Code Online (Sandbox Code Playgroud)

chronos框架应该正在运行并准备好启动任务

http://localhost:14400
Run Code Online (Sandbox Code Playgroud)

fig.yml

zk:
  image: mesos
  command: /usr/share/zookeeper/bin/zkServer.sh start-foreground
master:
  build: mesos-master
  ports:
    - "15050:5050"
  links:
    - "zk:zookeeper"
slave:
  build: mesos-slave
  links:
    - "zk:zookeeper"
chronos:
  build: mesos-chronos
  ports:
    - "14400:4400"
  links:
    - "zk:zookeeper"
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 此示例仅需要zookeeper的单个实例

build.sh

docker build --rm=true --tag=mesos mesos
Run Code Online (Sandbox Code Playgroud)

mesos/Dockerfile

FROM ubuntu:14.04
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

RUN echo "deb http://repos.mesosphere.io/ubuntu/ trusty main" > /etc/apt/sources.list.d/mesosphere.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
RUN apt-get -y update
RUN apt-get -y install mesos marathon chronos
Run Code Online (Sandbox Code Playgroud)

mesos主/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

EXPOSE 5050

CMD ["--zk=zk://zookeeper:2181/mesos", "--work_dir=/var/lib/mesos", "--quorum=1"]

ENTRYPOINT ["mesos-master"]
Run Code Online (Sandbox Code Playgroud)

mesos从式/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

CMD ["--master=zk://zookeeper:2181/mesos"]

ENTRYPOINT ["mesos-slave"]
Run Code Online (Sandbox Code Playgroud)

mesos-克罗诺斯/ Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <mark@myspotontheweb.com>

RUN echo "zk://zookeeper:2181/mesos" > /etc/mesos/zk

EXPOSE 4400

CMD ["chronos"]
Run Code Online (Sandbox Code Playgroud)

笔记:

  • "chronos"命令行使用文件配置.

  • 伙计,你摇滚!你不仅解决了我的问题,而且还教会了我将来如何处理类似的问题.谢谢!问题:1)我想与其他人分享这个,你想要荣誉还是我?2)这个设置是否包括一个动物园管理员?3)你将如何处理部署框架(风暴,马拉松)?BTW)我看到mesosphere/docker-containers现在(截至昨天)有mesos-master和mesos-slave. (4认同)