使用docker部署Mesos+Zookeeper+Marathon

本文介绍如何使用Docker部署Mesos集群和Marathon,包括Zookeeper、Mesos主节点、从节点及Marathon的详细步骤。关注镜像选择、网络配置、参数设置等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请不要在使用 garland/mesosphere-docker-mesos-master、garland/mesosphere-docker-marathon这些镜像了,他们已经三年没有维护了,应该用新的:mesosphere/mesos(mesosphere/mesos-master 和 mesosphere/mesos-slave)、mesosphere/marathon
GITHUBhttps://github.com/mesosphere 是其作者地址)

导语

Mesos 抽象资源和调度任务;优秀的集群资源调度平台

Marathon Mesos 上层组件,长期运行保障

Zookeeper Mesos依赖组件


一、使用docker进行部署

1、拉取相关镜像
$ docker pull zookeeper
$ docker pull mesosphere/mesos-master:1.5.2
$ docker pull mesosphere/mesos-slave:1.5.2
$ docker pull mesosphere/marathon:latest
2、安装各个服务
(1) Zookeeper 组件
$ docker run --name=zookeeper -d -p 2181:2181 zookeeper
(2) Mesos 主节点

安装 Mesos-master 服务

无法绑定IP:-e "MESOS_IP=111.112.158.65",只能通过修改配置文件来完成

$ docker run -d --net=host \
  --name mesos-master \
  -e "MESOS_HOSTNAME=mesos.yardstrong.online" \
  -e MESOS_PORT=5050 \
  -e MESOS_ZK=zk://127.0.0.1:2181/mesos \
  -e MESOS_QUORUM=1 \
  -e MESOS_REGISTRY=in_memory \
  -e MESOS_LOG_DIR=/var/log/mesos \
  -e MESOS_WORK_DIR=/var/tmp/mesos \
  -v "/var/log/mesos:/var/log/mesos" \
  -v "/var/tmp/mesos:/var/tmp/mesos" \
  mesosphere/mesos-master:1.5.2

参数说明
“MESOS_QUORUM” 参与master选举的最少节点数
“MESOS_REGISTRY” 持久化策略:in_memory内存 / replicated_log本地

(3) Mesos 从节点

PS: 由于上边创建主节点时,IP绑定失败,所以主节点注册到 zookeeper 中的Addr是 127.0.0.1:5050,为了保证从节点能够访问,这里和主节点部署在一台服务器上。

$ docker run -d --net=host \
  --name mesos-slave \
  --privileged \
  -e MESOS_PORT=5051 \
  -e MESOS_MASTER=zk://127.0.0.1:2181/mesos \
  -e MESOS_SWITCH_USER=0 \
  -e MESOS_CONTAINERIZERS=docker,mesos \
  -e MESOS_LOG_DIR=/var/log/mesos \
  -e MESOS_WORK_DIR=/var/tmp/mesos \
  -e MESOS_SYSTEMD_ENABLE_SUPPORT=false \
  -v "/var/log/mesos-sl:/var/log/mesos" \
  -v "/var/tmp/mesos-sl:/var/tmp/mesos" \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /cgroup:/cgroup \
  -v /sys:/sys \
  -v /usr/local/bin/docker:/usr/local/bin/docker \
  mesosphere/mesos-slave:1.5.2

注意
如果没有添加 “-e MESOS_SYSTEMD_ENABLE_SUPPORT=false” ,则会报错:
“Failed to initialize systemd: Failed to locate systemd runtime directory: /run/systemd/system”

(4) Marathon

在主节点安装 marathon 服务

$ docker run --net=host -d \
  --name marathon \
  mesosphere/marathon \
  --master zk://127.0.0.1:2181/mesos \
  --zk zk://127.0.0.1:2181/marathon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值