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

就到这里吧,过久没写了,找不到感受。

细节地方你们注意好就行

相关文章
相关标签/搜索