DockerMesos项目

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DockerMesos项目简介Mesos是一个集群资源的自动调度平台,Apache开源项目,它的定位是要做数据中心操作系统的内核。目前由Mesosphere公司维护,更多信息可以自行查阅Mesos项目地址或Mesosphere。Mesos+Marathon安装与使用Marathon是可以跟Mesos一起协作的一个framework,用来运行持久性的应用。安装一共需要安装四种组件,mesos-master、marathon、zookeeper需要安装到所有的主节点,mseos-slave需要安装到从节点。mesos利用zookper来进行主节点的同步,以及从节点发现主节点的过程。源码编译下载源码gitclone安装依赖#jdk-7sudoapt-getupdate&&sudoapt-getinstall-yopenjdk-7-jdk#autotoolssudoapt-getinstall-yautoconflibtool#Mesosdependencies.sudoapt-get-yinstallbuild-essentialpython-devpython-botolibcurl4-nss-devlibsasl2-devmavenlibapr1-devlibsvn-dev编译&安装$cdmesos#Bootstrap(Onlyrequiredifbuildingfromgitrepository).$./bootstrap$mkdirbuild$cdbuild&&../configure$make$makecheck&&makeinstall软件源安装以ubuntu系统为例。安装Docker,不再赘述,可以参考这里。#Setupsudoapt-keyadv--keyserverkeyserver.ubuntu.com--recvE56151BFDISTRO=$(lsb_release-is|tr'[:upper:]''[:lower:]')CODENAME=$(lsb_release-cs)#Addtherepositoryechodeb{DISTRO}${CODENAME}main|\sudotee/etc/apt/sources.list.d/mesosphere.listsudoapt-get-yupdate&&sudoapt-get-yinstallzookeepermesosmarathon基于Docker将基于如下镜像:ZooKeeper:Mesos:Marathon:其中mesos-master镜像将作为master和slave容器使用。导出本地机器的地址到环境变量。HOST_IP=10.11.31.7启动Zookeepr容器。dockerrun-d\-p2181:2181\-p2888:2888\-p3888:3888\garland/zookeeper启动MesosMaster容器。dockerrun--net=host\-p5050:5050\-eMESOS_HOSTNAME=${HOST_IP}\-eMESOS_IP=${HOST_IP}\-eMESOS_ZK=zk://${HOST_IP}:2181/mesos\-eMESOS_PORT=5050\-eMESOS_LOG_DIR=/var/log/mesos\-eMESOS_QUORUM=1\-eMESOS_REGISTRY=in_memory\-eMESOS_WORK_DIR=/var/lib/mesos\-d\garland/mesosphere-docker-mesos-master启动Marathon。dockerrun\-d\-p8080:8080\garland/mesosphere-docker-marathon--masterzk://${HOST_IP}:2181/mesos--zkzk://${HOST_IP}:2181/marathon启动Mesosslave容器。dockerrun-d\--namemesos_slave_1\--entrypoint=mesos-slave\-eMESOS_MASTER=zk://${HOST_IP}:2181/mesos\-eMESOS_LOG_DIR=/var/log/mesos\-eMESOS_LOGGING_LEVEL=INFO\garland/mesosphere-docker-mesos-master:latest接下来,可以通过访问本地8080端口来使用Marathon启动任务了。配置说明ZooKeeprZooKeepr是一个分布式应用的协调工具,用来管理多个Master节点的选举和冗余,监听在2181端口。配置文件在/etc/zookeeper/conf/目录下。首先,要修改myid,手动为每一个节点分配一个自己的id(1-255之间)。zoo.cfg是主配置文件,主要修改如下的三行(如果你启动三个zk节点)。server.1=zookeeper1:2888:3888server.2=zookeeper2:2888:3888server.3=zookeeper3:2888:3888主机名需要自己替换,并在/etc/hosts中更新。第一个端口负责从节点连接到主节点的;第二个端口负责主节点的选举通信。MesosMesos的默认配置目录分别为:/etc/mesos:共同的配置文件,最关键的是zk文件;/etc/mesos-master:主节点的配置,等价于启动mesos-master时候的默认选项;/etc/mesos-slave:从节点的配置,等价于启动mesos-master时候的默认选项。主节点首先在所有节点上修改/etc/mesos/zk,为主节点的zookeeper地址列表,例如:zk://ip1:2181,ip2:2181/mesos创建/etc/mesos-master/ip文件,写入主节点监听的地址。还可以创建/etc/mesos-master/cluster文件,写入集群的别名。之后,启动服务:sudoservicemesos-masterstart更多选项可以参考这里。从节点在从节点上,修改/etc/mesos-slave/ip文件,写入跟主节点通信的地址。之后,启动服务。sudoservicemesos-slavestart更多选项可以参考这里。此时,通过浏览器访问本地5050端口,可以看到节点信息。Marathon启动marathon服务。sudoservicemarathonstart启动成功后,在mesos的web界面的frameworks标签页下面将能看到名称为marathon的框架出现。同时可以通过浏览器访问8080端口,看到marathon的管理界面。此时,可以通过界面或者RESTAPI来创建一个应用,Marathon会保持该应用的持续运行。Mesos基本原理与架构首先,Mesos自身只是一个资源调度框架,并非一整套完整的应用管理平台,本身是不能干活的。但是它可以比较容易的跟各种应用管理或者中间件平台整合,一起工作,提高资源使用效率。架构master-slave架构,master使用zookeeper来做HA。master单独运行在管理节点上,slave运行在各个计算任务节点上。各种具体任务的管理平台,即framework跟master交互,来申请资源。基本单元master负责整体的资源调度和逻辑控制。slave负责汇报本节点上的资源给master,并负责隔离资源来执行具体的任务。隔离机制当然就是各种容器机制了。frameworkframework是实际干活的,包括两个主要组件:scheduler:注册到主节点,等待分配资源;executor:在slave节点上执行本framework的任务。framework分两种:一种是对资源需求可以scaleup或者down的(Hadoop、Spark);一种是对资源需求大小是固定的(MPI)。调度对于一个资源调度框架来说,最核心的就是调度机制,怎么能快速高效的完成对某个framework资源的分配(最好是能猜到它的实际需求)。两层调度算法:master先调度一大块资源给某个framework,framework自己再实现内部的细粒度调度。调度机制支持插件。默认是DRF。基本调度过程调度通过offer方式交互:master提供一个offer(一组资源)给framework;framework可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源(可以说明只希望使用部分资源,则多出来的会被master收回);master则根据framework的分配情况发送给slave,以使用framework的executor来按照分配的资源策略执行任务。过滤器framework可以通过过滤器机制告诉master它的资源偏好,比如希望分配过来的offer有哪个资源,或者至少有多少资源。主要是为了加速资源分配的交互过程。回头机制master可以通过回收计算节点上的任务来动态调整长期任务和短期任务的分布。HAmastermaster节点存在单点失效问题,所以肯定要上HA,目前主要是使用zookpeer来热备份。同时master节点可以通过slave和framework发来的消息重建内部状态(具体能有多快呢?这里不使用数据库可能是避免引入复杂度。)。framework通知framework中相关的失效,master将发给它的scheduler来通知。Mesos配置项解析Mesos的配置项可以通过启动时候传递参数或者配置目录下文件的方式给出(推荐方式,一目了然)。分为三种类型:通用项(master和slave都支持),只有master支持的,以及只有slave支持的。通用项--ip=VALUE监听的IP地址--firewall_rules=VALUEendpoint防火墙规则,VALUE可以是JSON格式或者存有JSON格式的文件路径。--log_dir=VALUE日志文件路径,默认不存储日志到本地--logbufsecs=VALUEbuffer多少秒的日志,然后写入本地--logging_level=VALUE日志记录的最低级别--port=VALUE监听的端口,master默认是5050,slave默认是5051。master专属配置项--quorum=VALUE必备项,使用基于replicated-Log的注册表时,复制的个数--work_dir=VALUE必备项,注册表持久化信息存储位置--zk=VALUE必备项,zookeepr的接口地址,支持多个地址,之间用逗号隔离,可以为文件路径--acls=VALUEACL规则或所在文件--allocation_interval=VALUE执行allocation的间隔,默认为1sec--allocator=VALUE分配机制,默认为HierarchicalDRF--[no-]authenticate是否允许非认证过的framework注册--[no-]authenticate_slaves是否允许非认证过的slaves注册--authenticators=VALUE对framework或salves进行认证时的实现机制--cluster=VALUE集群别名-

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功