您的位置:首页 > 运维架构 > Linux

Mesosphere Cluster on CentOS7 (zookeeper+mesos+marathon)

2015-06-12 12:02 561 查看
简介

mesosphere

mesos
marathon
zookeeper:
为master的mesos/marathon的配置文件,这保证master更轻量级。
大概为这几个概念,能找到这里的基本上都是知道他们是干啥的,这里不废话了。不懂的可自行脑补。

环境:
Hostname
FunctionIP Address
master1
Mesos master172.18.2.94
master2Mesos master172.18.2.95
master3Mesos master172.18.2.96
slave1Mesos slave172.18.2.97
slave2Mesos slave172.18.2.98
slave3Mesos slave172.18.2.99
slave4Mesos slave172.18.2.100
描述:
首先,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 yum' target='_blank'>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




marathon访问地址:
172.18.2.94:8080




Slave Node Setup

Package Installation

Setup Repositories

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

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的注册情况




Starting Services on Mesos and Marathon

这里不做复杂的演示,只做简单的。
WEB UI
master1:5050







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






就到这里吧,太久没写了,找不到感觉。
细节地方大家注意好就行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息