`
m635674608
  • 浏览: 5043950 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Mesos+Zookeeper+Marathon+Docker分布式集群管理最佳实践

 
阅读更多

 1.1Mesos简介

  Mesos是Apache下的开源分布式资源管理框架,它被称为分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发,后在Twitter得到广泛使用。

  Mesos-Master:主要负责管理各个framework和slave,并将slave上的资源分配给各个framework。

  Mesos-Slave:负责管理本节点上的各个mesos-task,比如:为各个executor分配资源。

  Framework:计算框架,如:Hadoop、Spark、Kafaka、ElasticSerach等,通过MesosSchedulerDiver接入Mesos

  Executor:执行器,就是安装到每个机器节点的软件,这里就是利用docker的容器来担任执行器的角色。具有启动销毁快,隔离性高,环境一致等特点。

  Mesos-Master是整个系统的核心,负责管理接入Mesos的各个framework(由frameworks_manager管理)和slave(由slaves_manager管理),并将slave上的资源按照某种策略分配给framework(由独立插拔模块Allocator管理)。

  Mesos-Slave负责接受并执行来自Mesos-master的命令、管理节点上的mesos-task,并为各个task分配资源。Mesos-slave将自己的资源量发送给mesos-master,由mesos-master中的Allocator模块决定将资源分配给哪个framework,当前考虑的资源有CPU和内存两种,也就是说,Mesos-slave会将CPU个数的内存量发送给mesos-master,而用户提交作业时,需要指定每个任务需要的CPU个数和内存。这样:当任务运行时,mesos-slave会将任务放导包含固定资源Linux container中运行,以达到资源隔离的效果。很明显,master存在单点故障问题,为此:Mesos采用了Zookeeper解决该问题。

  Framework是指外部的计算框架,如果Hadoop、Mesos等,这些计算框架可通过注册的方式接入Mesos,以便Mesos进行统一管理和资源分配。Mesos要求可接入的框架必须有一个调度模块,该调度器负责框架内部的任务调度。当一个framework想要接入Mesos时,需要修改自己的调度器,以便向Mesos注册,并获取Mesos分配给自己的资源,这样再由自己的调度器将这些资源分配给框架中的任务,也就是说,整个Mesos系统采用了双层调度框架:第一层,由Mesos将资源分配给框架。第二层,框架自己的调度器将资源分配给自己内部的任务。当前Mesos支持三中语言编写的调度器,分别是C++、Java、Python。为了向各种调度器提供统一的接入方式,Mesos内部采用C++实现了一个MesosSchedulerDriver(调度驱动器),framework的调度器可调用该driver中的接口与Mesos-master交互,完成一系列功能(如注册,资源分配等。)

  Executor主要用于启动框架内部的task。由于不同的框架,启动task的接口或者方式不同,当一个新的框架要接入mesos时,需要编写一个Executor,告诉Mesos如何启动该框架中的task。为了向各种框架提供统一的执行器编写方式,Mesos内部采用C++实现了一个MesosExecutorDiver(执行器驱动器),framework可通过该驱动器的相关接口告诉Mesos启动task的方式。

  整体架构如图1.1-1所示

  

 

  图1.1-1总体架构

  图1.1-1展示了Mesos的重要组成部分,Mesos由一个master进程管理运行着每个客户端节点的slave进程和跑任务的Mesos计算框架。

  Mesos进程通过计算框架可以很细致的管理cpu和内存等,从而提供资源。每个资源提供都包含了一个清单(slave ID,resource1:amount1,resource2,amount2,…)master会根据现有的资源决定提供每个计算框架多少资源。例如公平分享或者根据优先级分享。

  为了支持不同种的政策,master通过插件机制新增额一个allocation模块使之分配资源更简单方便。

  一个计算框架运行在两个组建之上,一个是Scheduler,他是master提供资源的注册中心,另一个是Executor程序,用来发起在slave节点上运行计算框架的任务。master决定给每个计算框架提供多少计算资源,计算框架的调度去选择使用哪种资源。当一个计算框架接受了提供的资源,他会通过Mesos的任务描述运行程序。Mesos也会在相应的slave上发起任务。

  资源提供案例,如图1.1-2所示

  

 

  图1.1-2资源提供案例

  下面我带大家一起熟悉图1.1-2的流程步骤

  1、slave1报告给master他拥有4核cpu和4G剩余内存,Marathon调用allocation政策模块,告诉slave1计算框架1应该被提供可用的资源。

  2、master给计算框架1发送一个在slave上可用的资源描述。

  3、计算框架的调度器回复给master运行在slave上两个任务相关信息,任务1需要使用2个CPU,内存1G,任务2需使用1个CPU,2G内存。

  4、最后,master发送任务给slave,分配适当的给计算框架执行器,继续发起两个任务(图1.1-2虚线处),因为任有1个CPU和1G内存未分配,allocation模块现在或许提供剩下的资源给计算框架2。

  除此之外,当任务完成,新的资源成为空闲时,这个资源提供程序将会重复。

  1.2Zookeeper简介

  Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chuby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

  1.2.1Zookeeper角色

  Leader(领导者):负责投票发起和决议,更新系统状态。

  follower(跟随者):Follower用于接收客户请求并向客户端返回结果,在选主过程中参与投票。

  ObServer(观察者):ObServer可以接受客户端连接,将写请求转发给Leader节点,但ObServer不参加投票过程,只同步Leader的状态,ObServer的目的是为了拓展系统,提高读取速度。

  Client(客户端):请求发起方。

  1.2.2Zookeeper工作原理

  Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和Leader的状态同步以后,回复模式就结束了。状态同步保证了Leader和Server具有相同的系统状态。

  为了保证事物的顺序一致性,Zookeeper采用了递增的事物ID号(zxid)来标识事物。所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用来标识Leader关系是否改变,每次一个Leader被选出来,它都会有每一个Server在工作过程中三中状态。

  q LOOKING:当前Server不知道Leader是谁,正在搜寻。

  q LEADING:当前Server即为选举出来的Leader。

  q FOLLOWING:Leader已经选举出来,当前Server与之同步。

  1.2.3Zookeeper选举流程

  当Leader崩溃或者Leader失去大多数的Follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的Leader,让所有的Server都恢复到一个正确的状态。

  ZK的选举算法有两种:

  1、基于Basic paxos实现

  2、基于fast paxos算法实现

  系统默认的选举算法为fast paxos。

  1.2.4Zookeeper同步流程

  选完Leader以后,zk就进入状态同步过程。

  1)Leader等待server连接。

  2)Follower连接Leader,将最大的zxid发送给Leader。

  3)Leader根据Follower的zxid确定同步点。

  4)完成同步后通知Follower已经成为uptodate状态。

  5)Follower收到uptodate消息后,又可以重新接受client的请求进行服务。

  1.2.5Zookeeper工作流程

  Leader三大功能:

  1)恢复数据

  2)维持与learner的心跳,接收learner请求并判断learner的请求消息类型

  3)learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。

  PING消息是指Learner的心跳信息;REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;REVALIDATE消息是用来延长SESSION有效时间。

  Follower主要四大功能:

  1)向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息)。

  2)接收Leader消息并进行处理。

  3)接收Client的请求,如果为写请求,发送给Leader进行投票。

  4)返回Client结果。

  Follower的消息循环处理如下几种来自Leader的消息:

  1)PING消息:心跳消息。

  2)PROPOSAL消息:Leader发起的提案,要求Follower投票。

  3)COMMIT消息:服务器端最新一次提案的信息。

  4)UPTODATE消息:表明同步完成。

  5)REVALIDATE消息:根据Leader的REVALIDATE结果,关闭待revalidate的session还是允许其接受消息。

  6)SYN消息:返回SYNC结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。

  1.3Marathon简介

  Marathon是一个Mesos框架,能够支持运行长服务,比如Web应用等。它是集群的分布式init.d能够原样运行任何Linux二进制发布版本,如Tomcat、Play等等。它也是一种私有的PaSS,实现服务的发现,为部署提供REST API服务,有授权和SSL、配置约束,通过HaProxy实现服务发现和负载平衡。

  1.4docker集群实践

  1.4.1集群环境准备

  主机名IP地址(Host-Only)描述

  linux-node1.cometh0:192.168.56.11Mesos Master、Mesos Slave、Marathon

  linux-node2.cometh0:192.168.56.12Zookeeper、Mesos Slave

  备注Zookeeper使用伪分布式不是,也就是一台虚拟机上启动三个不同端口的Zookeeper实例

  Linux-node1实践环境

  [root@linux-node1 ~]# cat /etc/redhat-release #查看系统版本

  CentOS Linux release 7.1.1503 (Core)

  [root@linux-node1 ~]# uname -r #查看内核信息

  3.10.0-229.el7.x86_64

  [root@linux-node1 ~]# getenforce #检测selinux是否关闭

  Permissive

  [root@linux-node1 ~]# systemctl stop firewalld #关闭firewall防火墙

  Linux-node2实践环境

  [root@linux-node2 ~]# cat /etc/redhat-release #查看系统版本

  CentOS Linux release 7.1.1503 (Core)

  [root@linux-node2 ~]# uname -r #查看内核信息

  3.10.0-229.el7.x86_64

  [root@linux-node2 ~]# getenforce

  #检测selinux是否关闭

  Permissive

  [root@linux-node2 ~]# systemctl stop firewalld #关闭firewall防火墙

  1.4.2Zookeeper伪集群安装部署

  部署Zookeeper需要java支持, 主流1.7,稳定最新1.8,开发最新1.9,这边选择yum安装即可支持Zookeeper

  [root@linux-node2 ~]# yum install -y java #安装java

  [root@linux-node2 ~]# cd /usr/local/src/ #进入源码安装目录

  [root@linux-node2 src]# wget

  http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.8.tar.gz #下载Zookeeper稳定版3.4.8

  [root@linux-node2 src]# tar xf zookeeper-3.4.8.tar.gz #解压Zookeeper

  [root@linux-node2 src]# mv zookeeper-3.4.8 /usr/local/ #将Zookeeper移动/usr/local/

  [root@linux-node2 src]# ln -s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper #给Zookeeper做一个软链接,方便以后升级等操作

  1.4.2.1Zookeeper配置文件详解

  由于是伪集群的配置方式,B(IP地址)都是一样,所以不同的Zookeeper实例通信端口号不能一样,所以要给它分配不同的端口号。

  [root@linux-node2 src]# cd /usr/local/zookeeper/conf/ #进入Zookeeper配置文件目录

  [root@linux-node2 conf]# mv zoo_sample.cfg zoo.cfg #重新命名为zoo.cfg

  [root@linux-node2 conf]# cat zoo.cfg

  tickTime=2000 #Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。

  initLimit=10 #Zookeeper的Leader接受客户端(Follower)初始化连接时最长能忍受多个个心跳时间间隔数。当已经超过5个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是5*2000=10秒。

  syncLimit=5 #表示Leader与Follower之间发送消息时请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是2*2000=4秒。

  dataDir=/tmp/zookeeper #数据存放目录

  clientPort=2181 #客户端连接端口

  #maxClientCnxns=60 #对于一个客户端的连接数限制,默认是60,但是有的团队将几十个应用全部部署到一台机器上,以方便测试,这样这个数值就会超过。

  #autopurge.purgeInterval=1 #指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。

  #autopurge.snapRetainCount=3 #这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。

  server.A=B:C:D:

  A:#代表一个数字,表示这个是几号服务器。

  B:#代表服务器的IP地址。

  C:#代表服务器与集群中的Leader服务器交换信息的端口。

  D:#如果集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

  1.4.2.2Zookeeper配置文件修改

  由于是伪集群的配置方式,B(IP地址)都是一样,所以不同的Zookeeper实例通信端口号不能一样,所以要给它分配不同的端口号。

  [root@linux-node2 conf]# grep ‘^[a-z]’ zoo.cfg #过滤出修改好的配置

  tickTime=2000

  initLimit=10

  syncLimit=5

  dataDir=/data/zk1

  clientPort=2181

  server.1=192.168.56.12:3181:4181

  server.2=192.168.56.12:3182:4182

  server.3=192.168.56.12:3183:4183

  1、创建三个目录来存放Zookeeper的数据

  [root@linux-node2 conf]# mkdir -p /data/{zk1,zk2,zk3}

  [root@linux-node2 conf]# echo “1” > /data/zk1/myid

  [root@linux-node2 conf]# echo “2” > /data/zk2/myid

  [root@linux-node2 conf]# echo “3” > /data/zk3/myid

  2、生成三份Zookeeper配置文件

  [root@linux-node2 conf]# pwd

  /usr/local/zookeeper/conf

  [root@linux-node2 conf]# cp zoo.cfg zk1.cfg

  [root@linux-node2 conf]# cp zoo.cfg zk2.cfg

  [root@linux-node2 conf]# cp zoo.cfg zk3.cfg

  3、修改zk2、zk3对应的数据存放目录以及端口

  [root@linux-node2 conf]# pwd

  /usr/local/zookeeper/conf

  [root@linux-node2 conf]# sed -i ‘s#zk1#zk2#g’ zk2.cfg

  [root@linux-node2 conf]# sed -i ‘s#zk1#zk3#g’ zk3.cfg

  [root@linux-node2 conf]# sed -i ‘s#2181#2182#g’ zk2.cfg

  [root@linux-node2 conf]# sed -i ‘s#2181#2183#g’ zk3.cfg

  1.4.2.3Zookeeper角色查看

  1、启动Zookeeper并查看角色

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk1.cfg #启动zk1

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk1.cfg

  Starting zookeeper … STARTED

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk2.cfg #启动zk2

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk2.cfg

  Starting zookeeper … STARTED

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk3.cfg #启动zk3

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk3.cfg

  Starting zookeeper … STARTED

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk1.cfg

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk1.cfg

  Mode: follower #zk1当前状态Follower

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk2.cfg

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk2.cfg

  Mode: leader #zk2当前状态Leader

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk3.cfg

  ZooKeeper JMX enabled by default

  Using config: /usr/local/zookeeper/conf/zk3.cfg

  Mode: follower #zk3当前状态Follower

  2、连接Zookeeper

  [root@linux-node2 conf]# /usr/local/zookeeper/bin/zkCli.sh -server 192.168.56.12:2181

  1.5Mesos集群部署

  安装Mesosphere仓库,需要在Mesos Master和Mesos Slave节点安装

  1.5.1Mesos_Master部署

  [root@linux-node1 ~]# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

  #node1安装Mesosphere仓库

  [root@linux-node1 ~]# yum -y install mesos marathon #安装Mesos和Marathon

  [root@linux-node1 ~]# cat /etc/mesos/zk #增加Zookeeper配置

  zk://192.168.56.12:2181,192.168.56.12:2182,192.168.56.12:2183/mesos

  [root@linux-node1 ~]# systemctl enable mesos-master mesos-slave marathon #加入开机启动Mesos-master slave Marathon

  [root@linux-node1 ~]# systemctl start mesos-master mesos-slave marathon #启动Mesos-master slave Marathon

  1.5.2Mesos_Slave部署

  [root@linux-node2 ~]# rpm -ivh

  http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm #node2安装Mesosphere仓库

  [root@linux-node2 ~]# yum -y install mesos #安装Mesos

  [root@linux-node2 ~]# systemctl start mesos-slave #启动Mesos-slave

  1.5.3Mesos_Web界面

  访问:http://192.168.56.11:5050如图1.5-1所示

  

 

  图1.5-1Tasks表格没有任何条目

  运行Mesos任务,可以在Web界面查看task如图1.5-2所示

  [root@linux-node1 ~]# MASTER=$(mesos-resolve `cat /etc/mesos/zk`)

  [root@linux-node1 ~]# mesos-execute –master=$MASTER –name=”cluster-test”–command=”sleep 60″

  

 

  图1.5-2运行Mesos任务

  1.5.4Marathon调用Mesos运行Docker容器

  [root@linux-node1 ~]# yum -y install docker #安装Docker

  [root@linux-node1 ~]# systemctl enable docker #Docker加入开机自启动

  [root@linux-node1 ~]# systemctl start docker #启动Docker容器

  [root@linux-node1 ~]# docker pull nginx #pull一个nginx镜像

  linux-node1:再所有mesos-slave上增加配置参数,并重启

  [root@linux-node1 ~]# echo ‘docker,mesos’ | tee /etc/mesos-slave/containerizers

  [root@linux-node1 ~]# systemctl restart mesos-slave #重启Mesos-slave

  linux-node2: 再所有mesos-slave上增加配置参数,并重启

  [root@linux-node2 ~]# echo ‘docker,mesos’ | tee /etc/mesos-slave/containerizers

  [root@linux-node2 ~]# systemctl restart mesos-slave #重启Mesos-slave

  通过marathon默认监听8080端口,通过marathon创建项目,如图1.5-3所示

  

 

  图1.5-3Marathon界面

  下面通过Mesos调度,使用marathon来创建一个nginx镜像的Docker容器,Marathon启动时会读取/etc/mesos/zk配置文件,Marathon通过Zookeeper来找到Mesos Master。

  Marathon有自己的REST API,我们通过API的方式来创建一个Nginx的Docker容器。首先创建如下的配置文件nginx.json

  [root@linux-node1 ~]# cat nginx.json

  {

  “id”:”nginx”,

  “cpus”:0.2,

  “mem”:32.0,

  “instances”: 1,

  “constraints”: [[“hostname”,

  “UNIQUE”,””]],

  “container”: {

  “type”:”DOCKER”,

  “docker”: {

  “image”: “nginx”,

  “network”: “BRIDGE”,

  “portMappings”: [

  {“containerPort”: 80,

  “hostPort”: 0,”servicePort”: 0, “protocol”:

  “tcp” }

  ]

  }

  }

  }

  使用curl的方式调用

  [root@linux-node1 ~]# curl -X POST

  http://192.168.56.11:8080/v2/apps -d @/root/nginx.json -H “Content-type:

  application/json”

  [root@linux-node1 ~]# docker ps -a #查看通过API和手动创建的容器

  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  1231814cd679 nginx “nginx -g ‘daemon off” 56 seconds ago Up 55 seconds 443/tcp, 0.0.0.0:31011->80/tcpmesos-16f943e5-be56-4254-858e-6347b89779de-S0.c47be185-eafc-4bd6-b0ca-e13e4536440b

  访问Docker随机启动的端口31011,如图1.5-4所示

  

 

  图1.5-4成功访问Nginx界面

  在MarathonWeb界面查看,如图1.5-5所示

  

 

  图1.5-5MarathonWeb界面查看Nginx已经在运行

  在Mesos界面查看,如图1.5-6所示

  

 

  图1.5-5Mesos界面查看Nginx Tasks

  也可以点击Marathon左上角的创建进行创建容器。

  注意:这里哪Nginx来举例,注册中心的marathon+mesos+docker集群是不适合用于服务的,也就是说不适合于对外开放端口的。比如说爬虫,因为不开放端口,需要做的仅仅是从队列中取资源,然后处理,存库。

  这个仅仅是job的发布管理运行,还有没CI,也就是说持续集成,后期我会发布jenkins+docker+mesos+marathon+git持续集成的方案,如果将代码发布结合DCO框架。

 

 

http://www.chinacloud.cn/show.aspx?id=23655&cid=16

分享到:
评论

相关推荐

    Mesos+Zookeeper+Marathon的Docker管理平台部署记录(个人珍藏版)

    本篇文章详细记录了Mesos+Zookeeper+Marathon的Docker管理平台部署过程,可作为线上实操手册,文档可用性已经过验证!有需要的朋友,请拿走。

    第六章:项目:Marathon+Mesos+Zookeeper+Docker实战1

    在本文中,我们将深入探讨“第六章:项目:Marathon+Mesos+Zookeeper+Docker实战1”的核心知识点,主要关注Apache Mesos、Zookeeper以及它们在分布式系统中的作用。 首先,Apache Mesos是一个强大的集群管理系统,...

    Marathon+Mesos+Zookeeper+Docker实战

    Marathon提供应用的长期运行支持,Mesos负责集群资源的管理和调度,而ZooKeeper确保了分布式系统中各组件的协调和一致性。通过这种组合,可以在保证应用高可用性和故障恢复能力的同时,实现资源的最大化利用和应用的...

    部署文档(mesos+zk+marathon).docx

    部署文档(mesos+zk+marathon).docx

    mesos-single:在单个容器中运行 Mesos + Marathon + Deimos + Zookeper 的容器

    Mesos、Marathon、Deimos和ZooKeeper是四个在分布式系统领域中广泛使用的开源组件,它们在构建可扩展和高可用的云基础设施中扮演着关键角色。在本场景中,我们将探讨如何在一个单独的容器中整合这些组件,实现一个...

    mesos集群在centos部署文档.pdf

    本篇文档将详细介绍如何在 CentOS 环境下搭建 Mesos 集群,包括 Docker 的安装、Zookeeper、Mesos、Marathon、HAProxy 和 Bamboo 的配置。 ### 一、环境准备 首先,确保你的 CentOS 系统是 6.6 版本,且拥有足够的...

    cloudformation-bamboo:Bamboo 堆栈的 CloudFormation 模板(用于 Mesos+Marathon)

    Exhibitor 管理的 ZooKeeper 集群,例如由。 具体来说,您将需要: 用于 ZK 节点发现的 Exhibitor 端点 与 Mesos 节点关联的 ZK 客户端安全组 一个运行 Marathon 框架的 Mesos 集群,例如由 概述 此模板引导 ...

    DCOS之marathon技术文档

    它是集群的分布式Init.d,能够运行任何Linux二进制发布版本,包括Tomcat、Play等,实现集群的多进程管理和服务发现,通过REST API提供部署、SSL和基础认证、配置约束,并支持通过HAProxy和DNS实现服务发现和负载平衡...

    marathon-0.8.2.tgz

    Marathon 是一个开源的分布式应用程序管理系统,由 Mesosphere 公司开发,主要用于在集群环境中运行和管理长期持续的服务。这个“marathon-0.8.2.tgz”文件是一个压缩包,包含了 Marathon 的 0.8.2 版本,该版本发布...

    Centos7上Mesos和Marathon的安装和配置

    Mesos提供了集群资源管理的功能,而Marathon则是在Mesos之上构建的一个高级调度器,用于运行长期运行的应用和服务。本文将详细介绍如何在CentOS 7上安装和配置这两个工具。 #### 二、环境准备 首先,我们需要准备...

    企业私有PaaS云架构.pptx

    引入Mesos+Marathon+Docker,实现故障迁移和资源调度。 3. **阶段三**:业务复杂度增加,需要微服务化和灰度发布功能。因此,提供了灰度发布、配置集中化和微服务支持。 目前,乐视的私有PaaS平台已经相当成熟,...

    apache-mesos-cookbook

    Work with Mesos and Docker Integrate Mesos with Spark and other big data frameworks Use networking features in Mesos for effective communication between containers Configure Mesos for high ...

    Mesos container在360广告系统的应用.pdf

    Mesos提供了一种灵活且高效的资源管理机制,能够支持多种分布式计算框架。具体来说: - **资源利用率高**:通过细粒度的资源共享机制,Mesos能够有效提高硬件资源的利用率。 - **简单易用**:Mesos的设计哲学是保持...

    docker-mesos-coreos:使用 Deis PaaS 在 CoreOS 上可靠地自动部署 mesos

    这个 cloud-init 假设每台机器都运行一个 zookeeper、mesos master、slave 和 marathon。 可以理解的是,这无法扩展。 与其立即与 haproxy 斗争,而且我主要熟悉并且对在 CoreOS 上运行 Deis 最感兴趣,而是使用 ...

    DCOS深入分析

    - `Zookeeper` 提供了一种协调服务,用于维护集群状态。 - `mesos-DNS` 用于提供 DNS 解析服务,支持服务发现。 2. **Slave 节点**:包含一组 Slave 组件,如 `mesos-slave`。这些节点负责执行 Master 分配的任务...

    vagrant-mesos-do:Vagrant脚本可轻松在DigitalOcean上设置Apache Mesos集群

    mesos-worker-N:Docker和Marathon的Mesos Worker haproxy-1:具有动态配置的HA代理 在vagrant up ,群集即可使用。 Mesos配置为与docker容器一起使用。 所有计算机都使用UFW防火墙,并且只能通过ssh进行访问。 ...

    mesos-ui:Apache Mesos的替代Web UI,使用和React.JS构建

    您可以通过docker以独立模式运行和部署此应用,例如: docker run -p 5000:5000 -e ZOOKEEPER_ADDRESS="ip1:2181,ip2:2181,ip3:2181" capgemini/mesos-ui:standalone-$TAG 或使用马拉松运动: 将ZOOKEEPER_ADDRESS...

    CCTC2016 乐视陈轶飞:私有PaaS在乐视的实践

    此外,该平台还包含了支持业务应用的核心组件,如自行开发的Zeus和Ceberus,以及开源组件Mesos、Marathon、Zookeeper、Nginx和HAProxy等。 从实际应用的角度,乐视的私有PaaS平台支撑了包括智能设备云平台、OTA同步...

    Java架构师简历模板(P6、P7)

    5. **负载均衡与自动化部署**:他熟悉Nginx、Tengine、Openresty等负载均衡组件,以及Git、Jenkins、Gradle等自动化部署工具,同时在容器化部署方面有经验,如Docker、Swarm、Mesos、Marathon、Kubernetes。...

Global site tag (gtag.js) - Google Analytics