天天看點

Mesos + Marathon 安裝與使用

簡介

Mesos 是一個叢集資源的自動排程平台,Apache 開源項目,它的定位是要做資料中心作業系統的核心。目前由 Mesosphere 公司維護,更多資訊可以自行查閱 Mesos 項目位址或 Mesosphere。

Marathon 是可以跟 Mesos 一起協作的一個 framework,用來運作持久性的應用。

安裝

一共需要安裝四種元件,mesos-master、marathon、zookeeper 需要安裝到所有的主節點,mseos-slave 需要安裝到從節點。

mesos 利用 zookper 來進行主節點的同步,以及從節點發現主節點的過程。

源碼編譯

下載下傳源碼

git clone https://git-wip-us.apache.org/repos/asf/mesos.git
      

安裝依賴

#jdk-7
sudo apt-get update && sudo apt-get install -y openjdk-7-jdk
#autotools
sudo apt-get install -y autoconf libtool
#Mesos dependencies.
sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev
      

編譯&安裝

$ cd mesos

# Bootstrap (Only required if building from git repository).
$ ./bootstrap

$ mkdir build
$ cd build && ../configure
$ make
$ make check && make install
      

軟體源安裝

以 ubuntu 系統為例。

安裝 Docker,不再贅述,可以參考 這裡。

# Setup
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)

# Add the repository
echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
  sudo tee /etc/apt/sources.list.d/mesosphere.list

sudo apt-get -y update && sudo apt-get -y install zookeeper mesos marathon
      

基于 Docker

将基于如下鏡像:

  • ZooKeeper:https://registry.hub.docker.com/u/garland/zookeeper/
  • Mesos:https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/
  • Marathon:https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/

其中 mesos-master 鏡像将作為 master 和 slave 容器使用。

導出本地機器的位址到環境變量。

HOST_IP=10.11.31.7
      

啟動 Zookeepr 容器。

docker run -d \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
garland/zookeeper
      

啟動 Mesos Master 容器。

docker run --net="host" \
-p 5050:5050 \
-e "MESOS_HOSTNAME=${HOST_IP}" \
-e "MESOS_IP=${HOST_IP}" \
-e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_PORT=5050" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_QUORUM=1" \
-e "MESOS_REGISTRY=in_memory" \
-e "MESOS_WORK_DIR=/var/lib/mesos" \
-d \
garland/mesosphere-docker-mesos-master
      

啟動 Marathon。

docker run \
-d \
-p 8080:8080 \
garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon
      

啟動 Mesos slave 容器。

docker run -d \
--name mesos_slave_1 \
--entrypoint="mesos-slave" \
-e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_LOGGING_LEVEL=INFO" \
garland/mesosphere-docker-mesos-master:latest
      

接下來,可以通過通路本地 8080 端口來使用 Marathon 啟動任務了。

配置說明

ZooKeepr

ZooKeepr 是一個分布式應用的協調工具,用來管理多個 Master 節點的選舉和備援,監聽在 2181 端口。

配置檔案在 /etc/zookeeper/conf/ 目錄下。

首先,要修改 myid,手動為每一個節點配置設定一個自己的 id(1-255之間)。

zoo.cfg 是主配置檔案,主要修改如下的三行(如果你啟動三個 zk 節點)。

server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
      

主機名需要自己替換,并在 /etc/hosts 中更新。

第一個端口負責從節點連接配接到主節點的;第二個端口負責主節點的選舉通信。

Mesos

Mesos 的預設配置目錄分别為:

  • /etc/mesos:共同的配置檔案,最關鍵的是 zk 檔案;
  • /etc/mesos-master:主節點的配置,等價于啟動mesos-master 時候的預設選項;
  • /etc/mesos-slave:從節點的配置,等價于啟動mesos-master 時候的預設選項。

主節點

首先在所有節點上修改 /etc/mesos/zk,為 主節點的 zookeeper 位址清單,例如:

建立 /etc/mesos-master/ip 檔案,寫入主節點監聽的位址。

還可以建立 /etc/mesos-master/cluster 檔案,寫入叢集的别名。

之後,啟動服務:

sudo service mesos-master start
      

更多選項可以參考這裡。

從節點

在從節點上,修改 /etc/mesos-slave/ip 檔案,寫入跟主節點通信的位址。

之後,啟動服務。

sudo service mesos-slave start
      

更多選項可以參考這裡。

此時,通過浏覽器通路本地 5050 端口,可以看到節點資訊。

Mesos + Marathon 安裝與使用

Marathon

啟動 marathon 服務。

啟動成功後,在 mesos 的 web界面的 frameworks 标簽頁下面将能看到名稱為 marathon 的架構出現。

同時可以通過浏覽器通路 8080 端口,看到 marathon 的管理界面。

Mesos + Marathon 安裝與使用

此時,可以通過界面或者 REST API 來建立一個應用,Marathon 會保持該應用的持續運作。

轉載請注明:http://blog.csdn.net/yeasy/article/details/46564833 

Mesos + Marathon 安裝與使用