一. 安裝環(huán)境及配置
- 所有主機(jī)系統(tǒng):centos6.9
角色 | 主機(jī)名 | IP | 安裝的應(yīng)用 |
---|---|---|---|
master | mesos-master-1 | 192.168.2.27 | mesos、marathon响蓉、zookeeper |
master | mesos-master-2 | 192.168.2.28 | mesos涤躲、marathon掸读、zookeeper |
master | mesos-master-3 | 192.168.2.29 | mesos会涎、marathon叉庐、zookeeper |
slave | mesos-slave-1 | 192.168.2.30 | mesos舒帮、docker |
我們通常采用多個master節(jié)點(diǎn)和多個slave節(jié)點(diǎn)來實(shí)現(xiàn)高可用。這里使用3個master節(jié)點(diǎn)來進(jìn)行高可用配置陡叠,每個master節(jié)點(diǎn)上都運(yùn)行mesos-master玩郊,marathon和提供選主機(jī)制的zookeeper服務(wù)。slave節(jié)點(diǎn)上只需要運(yùn)行mesos-slave服務(wù)匾竿,后期如果需要添加slave節(jié)點(diǎn)瓦宜,可以很容易的添加。為了簡單岭妖,下面直接采用yum方式安裝(除此之外临庇,還可以采用編譯安裝)反璃。
- 在所有主機(jī)/etc/hosts文件中添加內(nèi)容
192.168.2.27 mesos-master-1
192.168.2.28 mesos-master-2
192.168.2.29 mesos-master-3
192.168.2.30 mesos-slave-1
- 關(guān)閉防火墻
service iptables stop
# 永久關(guān)閉
chkconfig iptables off
二. 安裝zookeeper
- 安裝
sudo yum install -y tar wget
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
- 創(chuàng)建并修改配置文件
cd /usr/local/zookeeper-3.4.10
sudo cp conf/zoo_sample.cfg conf/zoo.cfg
配置文件zoo.cfg內(nèi)容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
#maxClientCnxns=60
server.1=mesos-master-1:2888:3888
server.2=mesos-master-2:2888:3888
server.3=mesos-master-3:2888:3888
server.X中的X代表zookeeper節(jié)點(diǎn)的ID,它需要被寫在對應(yīng)的{dataDir}/myid文件中假夺。
-
分別設(shè)置zookeeper的myid
根據(jù)上步配置內(nèi)容淮蜈,創(chuàng)建并設(shè)置myid文件內(nèi)容
# mesos-master-1
touch /var/lib/zookeeper/myid
echo 1 > /var/lib/zookeeper/myid
# mesos-master-2
touch /var/lib/zookeeper/myid
echo 2 > /var/lib/zookeeper/myid
# mesos-master-3
touch /var/lib/zookeeper/myid
echo 3 > /var/lib/zookeeper/myid
- 分別啟動每個zookeeper節(jié)點(diǎn)
./bin/zkServer.sh start
默認(rèn)當(dāng)前目錄為:/usr/local/zookeeper-3.4.10
- 查看zookeeper服務(wù)狀態(tài)
./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
詳細(xì)參考:zookeeper集群安裝
三. Master節(jié)點(diǎn)安裝和配置
注:以下操作為所有的Master節(jié)點(diǎn)。
- 安裝
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
-
設(shè)置zk的地址:
分別在每個master節(jié)點(diǎn)的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
- 設(shè)置quorum的值
vim /etc/mesos-master/quorum
注:這個值要大于master數(shù)/2已卷,這里master數(shù)為3梧田,所以要設(shè)為2
- 設(shè)置Master環(huán)境變量
$ cd /usr/etc/mesos
$ sudo cp mesos-master-env.sh.template mesos-master-env.sh
$ sudo vi mesos-master-env.sh
#添加下面幾行
export MESOS_log_dir=/var/log/mesos/master/
export MESOS_work_dir=/var/lib/mesos/master
export MESOS_ZK=zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
export MESOS_quorum=2
注:最后兩行與上面的2、3設(shè)置重復(fù)侧蘸,可選擇任意一種方法配置裁眯。
- 啟動mesos-master
mesos-master --work_dir=/var/lib/mesos/master --zk=zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos --quorum=2
三. Slave節(jié)點(diǎn)安裝和配置
- 安裝
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
-
設(shè)置zk的地址:
分別在每個slave節(jié)點(diǎn)的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
- 設(shè)置slave環(huán)境變量
$ cd /usr/etc/mesos
$ sudo cp mesos-slave-env.sh.template mesos-slave-env.sh
$ sudo vi mesos-slave-env.sh
#添加下面幾行
export MESOS_log_dir=/var/log/mesos/slave/
export MESOS_work_dir=/var/lib/mesos/slave/
export MESOS_isolation=cgroups
- 啟動服務(wù)
mesos-slave --master=zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos --work_dir=/var/lib/mesos/slave
四. 安裝配置marathon
- 下載解壓
wget http://downloads.mesosphere.com/marathon/v1.1.1/marathon-1.3.6.tgz
tar -zxvf marathon-1.3.6.tgz
- 后臺運(yùn)行
nohup ./start --master mesos-master-1:5050 --zk zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/marathon &
五. 完成安裝
按照以上的安裝和配置,一個高可用的Mesos和Marathon服務(wù)就搭建完成了讳癌〈┪龋可以通過http://:5050來訪問Mesos的web界面,通過http://:8080來訪問Marathon的web界面晌坤》晁遥可以是任意一個master節(jié)點(diǎn)的IP。
- 如開發(fā)中用到docker容器骤菠,還需做一些額外配置:
//指定使用docker容器化
echo 'docker,mesos' > /etc/mesos-slave/containerizers
//考慮到拉取容器鏡像等的操作它改,適當(dāng)增加timeout的時間
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
//重啟mesos-slave以使上面配置生效
sudo restart mesos-slave
- 相關(guān)配置
/etc/mesos-master/
/etc/mesos-slave/
/etc/marathon/conf/
在這些目錄分別用來配置mesos-master,mesos-slave商乎,marathon的啟動參數(shù)央拖。
相關(guān)參考自:
Centos7上Mesos和Marathon的安裝