【问题标题】:Configure 3 Mesos instance with 1 master using docker and docker-compose使用 docker 和 docker-compose 配置 3 个 Mesos 实例和 1 个主实例
【发布时间】:2015-10-20 03:45:44
【问题描述】:

通过阅读这篇文章:how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04, 我想使用 3 个服务器启动我自己的 docker mesosphere。

设置与文章类似,预计我使用 4 个 dockerized 服务器:

  • Docker 动物园管理员
  • Docker Mesos 大师
  • Docker Mesos 从站
  • 码头马拉松

我对配置文件的位置感到非常困惑,因为它们将 4 个组件安装在同一台机器上。 Docker 安装使用 4 个不同的服务器,如何使用 Docker 正确应用这些步骤。

我有

  • 服务器 1 - prod02 - prod02.domain.com
  • 服务器 2 - preprod02 - preprod02.domain.com
  • 服务器 3 - prod01 - prod01.domain.com

这是我为运行 主中间层服务器 1

开始编写的docker-compose.yml
zookeeper:
  build: zookeeper
  restart: always
  command: /usr/share/zookeeper/bin/zkServer.sh start-foreground
  ports:
    - "2181:2181"
    - "2888:2888"
    - "3888:3888"
master:
  build: master
  restart: always
  environment:
    - MESOS_HOSTNAME=master.prod-02.example.com
    - MESOS_ZK=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MESOS_QUORUM=1
    - MESOS_LOG_DIR=/var/log/mesos
    - MESOS_WORK_DIR=/var/lib/mesos
  volumes:
    - /srv/docker/mesos-master:/var/log/mesos
  ports:
    - "5050:5050"
slave:
  build: slave
  restart: always
  privileged: true
  environment:
    - MESOS_HOSTNAME=slave.prod-02.example.com
    - MESOS_MASTER=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins #also in Dockerfile
    - MESOS_CONTAINERIZERS=docker,mesos
    - MESOS_LOG_DIR=/var/log/mesos
    - MESOS_LOGGING_LEVEL=INFO
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/bin/docker:/usr/bin/docker
    - /sys:/sys:ro
    - /srv/docker/mesos-slave:/var/log/mesos
    - /srv/docker/mesos-data/docker.tar.gz:/etc/docker.tar.gz
  ports:
    - "5051:5051"
marathon:
  build: marathon
  restart: always
  environment:
    - MARATHON_HOSTNAME=marathon.prod-02.example.com
    - MARATHON_MASTER=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/mesos
    - MARATHON_ZK=zk://prod-02.example.com:2181,prod-01.example.com:2181,preprod-02.example.com:2181/marathon
  ports:
    - "8081:8080"

我的项目目录是这样的

  • /prod-02
    • /马拉松
      • Dockerfile
    • /主
      • Dockerfile
    • /奴隶
      • Dockerfile
    • /动物园管理员
      • /资产
      • /conf
        • myid
        • zoo.cfg
    • docker-compose.yml

使用此配置,主从服务器无法启动,日志为:

WARNING: Logging before InitGoogleLogging() is written to STDERR
F1016 12:12:49.976361     1 process.cpp:895] Failed to initialize: Failed to bind on XXX.XXX.XXX.XXX:5051: Cannot assign requested address: Cannot assign requested address [99]
*** Check failure stack trace: ***

由于文档湖,我感到有点失落,非常感谢任何配置帮助

【问题讨论】:

  • 我一直在 github.com/dnephin/compose-swarm-sandbox/tree/with_mesos 中进行类似的设置。我让它只与 swarm 一起工作,但它还没有完全与 mesos 一起工作。你遇到了什么问题?我认为您可能需要创建运行脚本的图像,以便在启动时进行一些配置(通过查询接口 ip)。
  • 好的,新配置完全改变了,所以我用我的 3 docker compose 更新了填充,问题是主选举正确完成,但我一次只能看到一个从属。跨度>
  • @dnephin,你如何在每次构建正确的接口 IP 时获得?使用 RUN docker inspect --format '{{ .NetworkSettings.IPAddress }}' image_name_1 ,它会将其添加到缓存一次,并且永远不会刷新,如果你有一个好的方法我很感兴趣
  • 我终于解决了这个问题,缺少的是为主从设置的外部IP地址MESOS_IP以及网络:主机模式
  • @BigDong:如果你明白了,你应该回答。您可以接受自己的答案。

标签: docker master-slave mesos docker-compose marathon


【解决方案1】:

我终于解决了,缺少的是为主从设置的外部IP地址MESOS_IP以及网络:主机模式

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2020-12-21
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多