【发布时间】: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