Mesos实践 基于MZM的PAAS的构建 3 Marathon简介

为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一。在本文中将会对Marathon进行简单的介绍。
这里写图片描述

什么是Marathon

Marathon是一个可以用于生产环境的容器编排框架,如果说Mesos把自身定成分布式的操作系统的话,那么Marathon就是运行在操作系统上为其管理各种应用进程的init大管家。
同时从Marathon 0.7.0 和Mesos 0.20.0之后,更是更加容易更加原生态地部署/运行/扩展Docker容器应用。目前也已经在很多公司中得到了广泛的应用比如:eBay/PayPal/Yelp等。

特性

特性 详细说明
High Availability Marathon runs as an active/passive cluster with leader election for 100% uptime.
Multiple container runtimes 支持使用cgroups的Mesos Containers和Docker
Stateful apps Marathon can bind persistent storage volumes to your application. You can run databases like MySQL and Postgres, and have storage accounted for by Mesos.
UI 华美而且强大
Constraints e.g. Only one instance of an application per rack, node, etc.
服务发现和负载均衡 多种实现
Health Checks 使用HTTP或者TCP方式评估应用程序运行状况
Event Subscription Supply an HTTP endpoint to receive notifications - for example to integrate with an external load balancer.
Metrics Query them at /metrics in JSON format or push them to systems like graphite, statsd and Datadog.
REST API 完整的REST API,可以更加便利地集成

运行环境依赖

组件 详细说明
libmesos JNI绑定以便于Mesos Master进行通信
Apache Zookeeper Leader选举时需要用到Zookeeper

CentOS7上的安装

yum install -y marathon
  • 1

设定zookeeper的quorum

设定文件:/etc/marathon/conf/zk
设定zookeeper的quorum 比如:zk://192.168.32.32:2181,192.168.32.33:2181,192.168.32.34:2181/marathon
也可以在启动的时候通过--zk指定
  • 1
  • 2
  • 3

高可用性模式

Marathon缺省启用高可用性模式,如果需要关闭的话使用–disable_ha在命令行中进行设定即可。

启动/停止/确认状态

CentOS下使用systemctl即可对marathon的进行启动/停止/状态确认。

启动:systemctl start  marathon
启动:systemctl stop   marathon
启动:systemctl status marathon
  • 1
  • 2
  • 3

Application

我们说Marathon类似于init,那么运行在其上的就被称为Application,典型情况下每个Application代表着一个在持续运行着的服务(也有人称之为长服务,因为很多E文的资料中为 long-running service),
而这些服务可以在多个机器启动多个实例,通过调整实例的个数来进行系统的横向扩展。

Hello Marathon

让我们来举一个具体的例子来说明,在Marathon上描述这样一个Application:
每5秒钟说一句Hello Marathon,永不停息。从Marathon看来描述这个Application的JSON可能就长成如下这个样子。

{
    "id": "basic-0", 
    "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done",
    "cpus": 0.1,
    "mem": 10.0,
    "instances": 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这是一个id名称为basic-0的Application,启动的实例是1,分配的CPU和内存分别是0.1和10MB,执行的内容则是每sleep 5秒钟就echo一下Hello Marathon的这样一个死循环的脚本。
而这个执行的方式这是通过Mesos调用/bin/sh -c ${cmd}来实现的。而在Marathon上管理这样的Appliction,则可以通过它宣称非常Beautiful 且 powerful的UI来可视地展现。

这里写图片描述

Marathon与DC/OS

更为简单的使用Marathon的方法官方称是使用DC/OS, 因为在DC/OS中预安装了Marathon,所以可以直接使用。对DC/OS感兴趣的话,可以参看下面的文章进行部署。基本上DC/OS也是在MZM的基础上进一步的封装,
但是它更侧重于“像管理一台机器那样管理整个Data Center”,ALL-In-One的全部安装了,本系列文章侧重于我们自己也有动手搭建简单的类似平台的能力,所以略显啰嗦。

项目 URL地址
DC/OS专题之安装部署篇 http://blog.csdn.net/liumiaocn/article/details/52049434

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

猜你喜欢

转载自www.cnblogs.com/firsttry/p/10238860.html
今日推荐