一. 安装环境及配置
- 所有主机系统:centos6.9
角色 | 主机名 | IP | 安装的应用 |
---|---|---|---|
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节点和多个slave节点来实现高可用。这里使用3个master节点来进行高可用配置,每个master节点上都运行mesos-master,marathon和提供选主机制的zookeeper服务。slave节点上只需要运行mesos-slave服务,后期如果需要添加slave节点,可以很容易的添加。为了简单,下面直接采用yum方式安装(除此之外,还可以采用编译安装)。
- 在所有主机/etc/hosts文件中添加内容
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
- 关闭防火墙
service iptables stop
# 永久关闭
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
- 创建并修改配置文件
cd /usr/local/zookeeper-3.4.10
sudo cp conf/zoo_sample.cfg conf/zoo.cfg
配置文件zoo.cfg内容如下:
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节点的ID,它需要被写在对应的{dataDir}/myid文件中。
- 分别设置zookeeper的myid
根据上步配置内容,创建并设置myid文件内容
# 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节点
./bin/zkServer.sh start
默认当前目录为:/usr/local/zookeeper-3.4.10
- 查看zookeeper服务状态
./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
详细参考:zookeeper集群安装
三. Master节点安装和配置
注:以下操作为所有的Master节点。
- 安装
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
- 设置zk的地址:
分别在每个master节点的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
- 设置quorum的值
vim /etc/mesos-master/quorum
注:这个值要大于master数/2,这里master数为3,所以要设为2
- 设置Master环境变量
$ 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设置重复,可选择任意一种方法配置。
- 启动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节点安装和配置
- 安装
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
- 设置zk的地址:
分别在每个slave节点的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
- 设置slave环境变量
$ 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
- 启动服务
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
- 后台运行
nohup ./start --master mesos-master-1:5050 --zk zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/marathon &
五. 完成安装
按照以上的安装和配置,一个高可用的Mesos和Marathon服务就搭建完成了。可以通过http://:5050来访问Mesos的web界面,通过http://:8080来访问Marathon的web界面。可以是任意一个master节点的IP。
- 如开发中用到docker容器,还需做一些额外配置:
//指定使用docker容器化
echo 'docker,mesos' > /etc/mesos-slave/containerizers
//考虑到拉取容器镜像等的操作,适当增加timeout的时间
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
//重启mesos-slave以使上面配置生效
sudo restart mesos-slave
- 相关配置
/etc/mesos-master/
/etc/mesos-slave/
/etc/marathon/conf/
在这些目录分别用来配置mesos-master,mesos-slave,marathon的启动参数。
相关参考自:
Centos7上Mesos和Marathon的安装