【问题标题】:Setting up a docker / fig Mesos environment搭建一个 docker / fig Mesos 环境
【发布时间】:2014-10-02 17:49:29
【问题描述】:

我正在尝试建立一个 docker / fig Mesos 集群。 我是 fig 和 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

谢谢!


编辑:

感谢 Mark O`Connor 的帮助,我创建了一个基于 docker 的有效 mesos 设置(+storm、chronos 以及更多即将推出)。

享受吧,如果你觉得这很有用 - 请贡献: https://github.com/yaronr/docker-mesos

PS。请+1马克的回答:)

【问题讨论】:

    标签: docker apache-storm mesos fig


    【解决方案1】:

    您没有指出您遇到的错误。

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

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

    真正让我担心的是这些图片不受信任,而且没有立即可用的来源。

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

    更新示例

    更新示例以包含 chronos 框架

    ├── build.sh
    ├── fig.yml
    ├── mesos
    │   └── Dockerfile
    ├── mesos-chronos
    │   └── Dockerfile
    ├── mesos-master
    │   └── Dockerfile
    └── mesos-slave
        └── Dockerfile
    

    构建基础镜像(只需完成一次)

    ./build.sh
    

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

    $ fig up -d
    Creating mesos_zk_1...
    Creating mesos_master_1...
    Creating mesos_slave_1...
    Creating mesos_chronos_1...
    

    关于 fig 的一个有用的事情是你可以扩大奴隶规模

    $ fig scale slave=5
    Starting mesos_slave_2...
    Starting mesos_slave_3...
    Starting mesos_slave_4...
    Starting mesos_slave_5...
    

    mesos 主控制台应该显示 5 个从站正在运行

    http://localhost:15050/#/slaves
    

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

    http://localhost:14400
    

    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"
    

    注意事项:

    • 本示例只需要一个 zookeeper 实例

    build.sh

    docker build --rm=true --tag=mesos mesos
    

    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
    

    mesos-master/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"]
    

    mesos-slave/Dockerfile

    FROM mesos
    MAINTAINER Mark O'Connor <mark@myspotontheweb.com>
    
    CMD ["--master=zk://zookeeper:2181/mesos"]
    
    ENTRYPOINT ["mesos-slave"]
    

    mesos-chronos/Dockerfile

    FROM mesos
    MAINTAINER Mark O'Connor <mark@myspotontheweb.com>
    
    RUN echo "zk://zookeeper:2181/mesos" > /etc/mesos/zk
    
    EXPOSE 4400
    
    CMD ["chronos"]
    

    注意事项:

    • “chronos”命令行是使用文件配置的。

    【讨论】:

    • 老兄,你摇滚!你不仅解决了我的问题,而且还教会了我将来如何处理类似的问题。谢谢!问题: 1)我想与其他人分享这个,你想要荣誉还是我想要? 2) 这个设置是否包括一个动物园管理员? 3) 您将如何部署框架(风暴、马拉松)?顺便说一句)我现在(截至昨天)看到 mesosphere/docker-containers 有 mesos-master 和 mesos-slave。
    • @JRun 我还在学习 mesos,所以弄清楚这一点很有趣。回答您的问题: 1) Stackoverflow 旨在帮助他人。承认是我们所需要的。 2)我没有使用zookeeper尝试过这个例子。除非您计划让容器跨多个主机运行(有趣的想法),否则不完全确定它是否值得。 3)在此设置之上运行框架应该不会太难。 mesosphere github 有一些我没试过的例子。我假设它们用于测试 Mesos 及其框架。
    • 好的,事情是这样的:我想在这个 mesos 上运行 chronos 作为 fwk。 1) chronos 需要 zookeeper。 2) 我不知道如何让 chronos 作为 fig.yml 的一部分运行。我不确定这是否微不足道-我只是花了一整天的时间。如果您可以尝试解决此问题,请感谢它(没有框架,mesos 毫无用处)。 10x
    • @JRun 示例修改为包含 zookeeper 和 chronos。你欠我一杯啤酒:-)
    • 我在 github 创建了一个项目,并添加了对 Apache Storm 的支持。如果您能继续为这个项目做出贡献,那就太好了:github.com/yaronr/docker-mesos。希望其他人也能从中受益。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    相关资源
    最近更新 更多