1. 程式人生 > >Mesos實踐 基於MZM的PAAS的構建 3 Marathon簡介

Mesos實踐 基於MZM的PAAS的構建 3 Marathon簡介

為分散式微服務框架提供合適的PAAS平臺,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作為選擇之一。在本文中將會對Marathon進行簡單的介紹。
這裡寫圖片描述

URL https://github.com/mesosphere/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