Mesosphere Cluster on CentOS7 (zookeeper+mesos+marathon)

簡介
linux

mesosphere
docker

mesosnpm

marathonjson

zookeeper:vim

  爲master的mesos/marathon的配置文件,這保證master更輕量級。api

大概爲這幾個概念,能找到這裏的基本上都是知道他們是幹啥的,這裏不廢話了。不懂的可自行腦補。bash



環境:app

Hostname
Function IP Address
master1
Mesos master 172.18.2.94
master2 Mesos master 172.18.2.95
master3 Mesos master 172.18.2.96
slave1 Mesos slave 172.18.2.97
slave2 Mesos slave 172.18.2.98
slave3 Mesos slave 172.18.2.99
slave4 Mesos slave

172.18.2.100curl


描述:ide

  首先,master爲3臺機器,作zookeeper集羣作配置管理(mesos/marathon/zookeeper),而後3個master節點作高可用、Marathon同理。


提早工做

  ①關掉selinux

setenforece 0 (配置文件自行修改)

  ②關掉firewalld

systemctl disable firewalld.service

  ③清空防火牆

iptables -F





Master Nodes Setup

Package Installation

  這裏爲了簡單起便,將使用yum來裝,固然你能夠本身編譯,效果同樣。其餘的還有docker倉庫直接裝的,方法不少,看你環境吧。

Setup Repositories

 

rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

Install

yum -y install mesosphere-zookeeper
yum -y install mesos marathon


Configuration

ZooKeeper

①,先給每臺機器zookeeper打標籤:

echo 1 > /etc/zookeeper/conf/myid
PS:
有些可能在 /var/lib/zookeeper/myid

注意:myid中的每臺機器不一樣,對應下面配置文件中的server.$NUM

 

/etc/zookeeper/conf/zoo.cfg配置文件中追加如下內容:

server.1=172.18.2.94:2888:3888
server.2=172.18.2.95:2888:3888
server.3=172.18.2.96:2888:3888

解釋下這個後邊的$IP,$PORT1,$PORT2

IP不解釋
$PORT1 由於三臺爲高可用,確定有個master,這個端口是master起的;
$PORT2 爲他們互相檢查、看誰當master檢查用的。


而後就能夠重啓zookeeper服務了(端口爲2181)

systemctl start zookeeper


Mesos

ZooKeeper

在每一個節點上,須要配置zookeeper的地址,像這樣寫進/etc/mesos/zk

zk://172.18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181/mesos
Quorum

我不肯定這個是否是BUG,由於這個官方要求參數,3臺master的狀況下,這個配置應該爲2的,可是當你設置成2的時候,3臺master一直會去爭搶leader,致使slave節點沒法註冊,因此這裏咱們將它搞爲1

echo 1 > /etc/mesos-master/quorum
Hostname

這裏說下,咱們把主機名master$num 寫進hosts解析裏面,而後把各自的主機名寫進這個文件中

echo $master > /etc/mesos-master/hostname

須要將本機的ip寫進配置文件中

echo $host > /etc/mesos-master/ip


而後mesos的配置這裏就ok了,可是你得注意一點,把他自身的一些東西給處理下

systemctl stop mesos-slave.service
systemctl disable mesos-slave.service

而後重啓mesos

systemctl restart mesos-master.service


Marathon

首先,建立下他的配置文件的路徑(yum裝的沒給咱們建立)

mkdir -p /etc/marathon/conf
Hostname

把mesos的直接拷過來就行了

cp /etc/mesos-master/hostname /etc/marathon/conf
ZooKeeper

這裏有2點:①配置marathon本身的zk,另外還須要鏈接mesos本身的,由於他要過去調度任務呀

cp /etc/mesos/zk /etc/marathon/conf/master
cp /etc/marathon/conf/master /etc/marathon/conf/zk
vim /etc/marathon/conf/zk 
內容:zk://172.18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181/marathon

而後重啓marathon

systemctl restart marathon.service


Master is ok !

mesos訪問地址:

172.18.2.94:5050

wKiom1V6UmXTpy8qAAGKoWKlxcw213.jpg


marathon訪問地址:

172.18.2.94:8080

wKioL1V6VA3AYXDVAAClv2u2Vf4499.jpg



Slave Node Setup

Package Installation

Setup Repositories

rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

Install from package

yum -y install mesos

Configuration

Mesos

首先要關掉master

systemctl stop mesos-master.service
systemctl disable mesos-master.service
ZooKeeper

配置zookeeper的地址,由於說過他們會向zookeeper註冊,配置同master /etc/mesos/zk

zk://172.18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181/mesos
Hostname

同理,這裏爲/etc/mesos-slave/hostname

須要將本機的ip寫進配置文件中

echo $host > /etc/mesos-slave/ip

Start Services

systemctl restart mesos-slave.service

而後,到mesos管理端,去查看slave的註冊狀況

wKiom1V6U8aBVDdaAAGf9pnpmNU738.jpg


Starting Services on Mesos and Marathon

這裏不作複雜的演示,只作簡單的。

WEB UI 

master1:5050

wKioL1V6WoXhZUqGAAD6cHsUyyA319.jpg

wKiom1V6WN2i7UeBAABOmySsjHI927.jpg


Starting a Service through the API

首先準備一個json文件(hello2.json)

{
    "id": "hello2",
    "cmd": "echo hello; sleep 10",
    "mem": 16,
    "cpus": 0.1,
    "instances": 1,
    "disk": 0.0,
    "ports": [0]
 }


而後調用api

curl -i -H 'Content-Type: application/json' -d@hello2.json master1:8080/v2/apps

wKioL1V6Wv2SG-qMAABdQSR9YTw197.jpg

wKiom1V6WXjRgILHAALUk1lcMuI281.jpg

就到這裏吧,過久沒寫了,找不到感受。

細節地方你們注意好就行

相關文章
相關標籤/搜索