请不要在使用 garland/mesosphere-docker-mesos-master、garland/mesosphere-docker-marathon这些镜像了,他们已经三年没有维护了,应该用新的:mesosphere/mesos(mesosphere/mesos-master 和 mesosphere/mesos-slave)、mesosphere/marathon
GITHUB(https://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