使用 docker 和 docker-compose 配置 3 个 Mesos 实例和 1 个主实例
Configure 3 Mesos instance with 1 master using docker and docker-compose
通过阅读这篇文章:how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04,
我想使用 3 个服务器开始我自己的 docker mesosphere。
设置与文章类似,预计我使用 4 docker 化服务器:
- Docker动物园管理员
- Docker Mesos 管理节点
- Docker Mesos 奴隶
- Docker马拉松
我对配置文件的位置感到很困惑,因为它们将 4 个组件安装在同一台机器上。
Docker 安装使用 4 个不同的服务器,如何使用 Docker.
正确应用这些步骤
我有
- 服务器 1 - prod02 - prod02.domain.com
- 服务器 2 - preprod02 - preprod02.domain.com
- 服务器 3 - prod01 - prod01.domain.com
这是我开始为 运行 master mesosphere 服务器 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"
我的项目目录是这样的
- /产品-02
- /马拉松
- Docker文件
- /主人
- Docker文件
- /奴隶
- Docker文件
- /动物园管理员
- /资产
- /配置文件
- 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: ***
由于文档不足,我感到有点迷茫,非常感谢任何帮助配置
我终于解决了这个问题,缺少的是为主从设置的外部 IP 地址 MESOS_IP 以及 net: 主机模式
通过阅读这篇文章:how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04, 我想使用 3 个服务器开始我自己的 docker mesosphere。
设置与文章类似,预计我使用 4 docker 化服务器:
- Docker动物园管理员
- Docker Mesos 管理节点
- Docker Mesos 奴隶
- Docker马拉松
我对配置文件的位置感到很困惑,因为它们将 4 个组件安装在同一台机器上。 Docker 安装使用 4 个不同的服务器,如何使用 Docker.
正确应用这些步骤我有
- 服务器 1 - prod02 - prod02.domain.com
- 服务器 2 - preprod02 - preprod02.domain.com
- 服务器 3 - prod01 - prod01.domain.com
这是我开始为 运行 master mesosphere 服务器 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"
我的项目目录是这样的
- /产品-02
- /马拉松
- Docker文件
- /主人
- Docker文件
- /奴隶
- Docker文件
- /动物园管理员
- /资产
- /配置文件
- 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: ***
由于文档不足,我感到有点迷茫,非常感谢任何帮助配置
我终于解决了这个问题,缺少的是为主从设置的外部 IP 地址 MESOS_IP 以及 net: 主机模式