虚拟机使用ubuntu/trusty64镜像
vagrant init ubuntu/trusty64
vagrant up
启动后安装docker, 参见https://docs.docker.com/engine/installation/linux/ubuntulinux/
# docker version
Version: 1.10.3
拉取mesoscloud的docker image
docker pull mesoscloud/mesos-master
docker pull mesoscloud/mesos-slave
docker pull mesoscloud/marathon
docker pull mesoscloud/zookeeper
创建docker网络(后面的操作不能用bridge网络)
docker network create --subnet 172.18.0.1/16 mybridge
启动zookeeper1/2/3
# docker run -d -P --net=mybridge \
-e MYID=1 --ip 172.18.0.11 --name=zookeeper1 \
-e SERVERS=node-1,node-2,node-3 \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
--restart=always mesoscloud/zookeeper
# docker run -d -P --net=mybridge \
-e MYID=2 --ip 172.18.0.12 --name=zookeeper2 \
-e SERVERS=node-1,node-2,node-3 \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
--restart=always mesoscloud/zookeeper
# docker run -d -P --net=mybridge \
-e MYID=3 --ip 172.18.0.13 --name=zookeeper3 \
-e SERVERS=node-1,node-2,node-3 \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
--restart=always mesoscloud/zookeeper
运行mesos-master1
# docker run -d -P --net mybridge \
--ip 172.18.0.21 --name mesos-master1 \
-e MESOS_HOSTNAME=172.18.0.21 -e MESOS_IP=172.18.0.21 \
-e MESOS_QUORUM=1 \
-e MESOS_ZK=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
--restart always mesoscloud/mesos-master
运行mesos-master2
# docker run -d -P --net mybridge \
--ip 172.18.0.22 --name mesos-master2 \
-e MESOS_HOSTNAME=172.18.0.22 -e MESOS_IP=172.18.0.22 \
-e MESOS_QUORUM=2 \
-e MESOS_ZK=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
--restart always mesoscloud/mesos-master
运行mesos-slave1/2/3
# docker run -d -P --net mybridge \
--name mesos-slave1 --ip 172.18.0.31 \
-e MESOS_HOSTNAME=172.18.0.31 -e MESOS_IP=172.18.0.31 \
-e MESOS_MASTER=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
-v /sys/fs/cgroup:/sys/fs/cgroup \ ???
-v /var/run/docker.sock:/var/run/docker.sock \ ??? 容器内的docker和host的容器服务通讯,在本测试中不合适
--privileged --restart always mesoscloud/mesos-slave
# docker run -d -P --net mybridge \
--name mesos-slave2 --ip 172.18.0.32 \
-e MESOS_HOSTNAME=172.18.0.32 -e MESOS_IP=172.18.0.32 \
-e MESOS_MASTER=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
-v /sys/fs/cgroup:/sys/fs/cgroup \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged --restart always mesoscloud/mesos-slave
# docker run -d -P --net mybridge \
--name mesos-slave3 --ip 172.18.0.33 \
-e MESOS_HOSTNAME=172.18.0.33 -e MESOS_IP=172.18.0.33 \
-e MESOS_MASTER=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
-v /sys/fs/cgroup:/sys/fs/cgroup \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged --restart always mesoscloud/mesos-slave
运行marathon
# docker run -d --net mybridge \
--name marathon --ip 172.18.0.41 \
-e MARATHON_HOSTNAME=172.18.0.41 \
-e MARATHON_HTTPS_ADDRESS=172.18.0.41 \
-e MARATHON_HTTP_ADDRESS=172.18.0.41 \
--add-host=node-1:172.18.0.11 --add-host=node-2:172.18.0.12 --add-host=node-3:172.18.0.13 \
-e MARATHON_MASTER=zk://node-1:2181,node-2:2181,node-3:2181/mesos \
-e MARATHON_ZK=zk://node-1:2181,node-2:2181,node-3:2181/marathon \
--restart always mesoscloud/marathon
访问控制界面
vagrant使用默认的端口映射(Forwarded port)方式,Vagrantfile加上
config.vm.network "forwarded_port", guest: 5050, host: 5050
config.vm.network "forwarded_port", guest: 8080, host: 5051
再在虚拟机中安装nginx反向代理到docker
server {
listen 5050;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://172.18.0.21:5050;
}
}
server {
listen 8080;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://172.18.0.41:8080;
}
}
在host中访问mesos和marathon
http://127.0.0.1:5050
http://127.0.0.1:5051
通过marathon部署任务
点“+New App”按钮,弹出对话框,输入Command:python -m SimpleHTTPServer 9977, Instances:2
启动一个web程序,2个实例
TODO
部署docker image任务 ? (mesoscloud/mesos-slave 中有docker , 用多个虚拟机?)
haproxy ?
多mesos-master
相关推荐
本篇文章详细记录了Mesos+Zookeeper+Marathon的Docker管理平台部署过程,可作为线上实操手册,文档可用性已经过验证!有需要的朋友,请拿走。
部署文档(mesos+zk+marathon).docx
总体来看,Marathon、Mesos和ZooKeeper都是各自领域的成熟技术和解决方案,而Docker的加入,则进一步提升了应用部署的灵活性和便捷性。这种组合在现今的IT架构中非常常见,尤其适合需要高可靠性和高效资源管理的大型...
在本文中,我们将深入探讨“第六章:项目:Marathon+Mesos+Zookeeper+Docker实战1”的核心知识点,主要关注Apache Mesos、Zookeeper以及它们在分布式系统中的作用。 首先,Apache Mesos是一个强大的集群管理系统,...
Vagrantfile 和一些用于创建 Mesos + Marathon + Chronos + Docker 集群的 shell 脚本 如果只是尝试 Mesos 集群,那会很痛苦。 这组文件可以让你轻松生成 Mesos 的集群环境。 如果你愿意,你可以参考。 入门 1. ...
基于Docker快速搭建单节点Mesos/Marathon集群,增加支持marathon管理运行docker功能 GitHub地址: ##一. 简介 是集群资源管理系统,是运行在Mesos之上的集群计算架构。将Mesos和Marathon打包到镜像中,开发者便可以在...
Mesos、Marathon、Deimos和ZooKeeper是四个在分布式系统领域中广泛使用的开源组件,它们在构建可扩展和高可用的云基础设施中扮演着关键角色。在本场景中,我们将探讨如何在一个单独的容器中整合这些组件,实现一个...
从提供的Mahaweli-master压缩包中,用户可以找到详细的playbooks、roles和配置文件,通过运行这些脚本来快速建立和管理Mesos+Marathon的堆栈。 总的来说,Mahaweli项目提供了一种高效的自动化解决方案,帮助IT团队...
一个运行 Marathon 框架的 Mesos 集群,例如由 概述 此模板引导 Bamboo 管理的负载平衡堆栈。 Bamboo 服务器从运行 Ubuntu 14.04 LTS 的公共 AMI 启动,并预加载了 Docker 和 Runit。 如果您想使用自己的图像,只需...
中国电信基于Mesos+Docker的运维自动化在CDN中的实践: 中国电信云公司CDN运营中心,要做融合CDN,承载天翼高清、承载IPTV、承载传统CDN业务
mesos集群+zk集群本地部署方案,有助于了解mesos配置和zk配置。
vagrant-mesos, Mesos/Docker/Marathon/Aurora 开发 Vagrant setup mesosVagrant开发 environent Mesos/Marathon/Chronos/Aurora/Jenkins/Docker免责声明:这个Vagrant安装消耗了大量资源,但在我的2013 Macbook Pro...
Mesos 的架构允许它在资源有限的环境中,如数据中心,有效地运行多种框架,这些框架可以是大数据处理(如 Hadoop、Spark)、容器编排(如 Marathon、Kubernetes)或其他分布式服务。 Mesos 包含三个主要组件:主控...
vagrant-mesos 支持 Mesos 0.21.0 集群,同时包括 Marathon (0.8.0) 和 Chronos (2.1.0)正在运行的框架服务器节点。这意味着,你可以使用 vagrant up,打造自己的 Mesos Marathon Chronos Docker PaaS 平台。...
*平台底层以Mesos+Marathon框架来实现容器 应用的创建运行、快速缩容扩容、故障自愈。 *平台自创容器动态独立IP功能,满足平台上 面每个实例与传统应用环境的无缝调用。 *平台的软负载容器可根据应用容器的增删做 ...
无业游民的贴心马拉松集群使用Vagrant,Virtualbox和Ansible创建的Mesos和Marathon群集,可在任何主机操作系统上使用。 使用安装在来宾操作系统中的Ansible,因此不需要支持Ansible的主机操作系统。 即,它可以在...
莫罗克龙mesos + cron = moroccron 这是可怕的和...)游荡在无家可归Vagrant用于与go,godep,mesos,zookeeper等建立完整的开发环境。moroccron的代码在~/code ,可以使用godep go build 。 $ vagrant up$ vagrant ssh
### Centos7上Mesos和Marathon的安装与配置详解 #### 一、概述 Mesos和Marathon是两个在数据中心资源管理和应用部署方面非常重要的工具。Mesos提供了集群资源管理的功能,而Marathon则是在Mesos之上构建的一个高级...
一旦你的 vagrant 机器在安装了 mesos 和 marathon 的情况下运行,你可以继续以下部分。 构建图像 为了能够使用 docker 执行示例,目录docker-image包含构建和创建 docker 实例所需的步骤。 运行图像 为了在马拉松...