Mesos+zookeeper+marathon安装

一. 安装环境及配置
  1. 所有主机系统: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方式安装(除此之外,还可以采用编译安装)。

  1. 在所有主机/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 
  1. 关闭防火墙
service iptables stop

# 永久关闭
chkconfig iptables off
二. 安装zookeeper
  1. 安装
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
  1. 创建并修改配置文件
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文件中。

  1. 分别设置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
  1. 分别启动每个zookeeper节点
./bin/zkServer.sh start

默认当前目录为:/usr/local/zookeeper-3.4.10

  1. 查看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节点。

  1. 安装
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
  1. 设置zk的地址:
    分别在每个master节点的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
  1. 设置quorum的值
vim /etc/mesos-master/quorum

注:这个值要大于master数/2,这里master数为3,所以要设为2

  1. 设置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设置重复,可选择任意一种方法配置。

  1. 启动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节点安装和配置
  1. 安装
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
yum -y install mesos
  1. 设置zk的地址:
    分别在每个slave节点的/etc/mesos/zk配置文件中添加:
zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos
  1. 设置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
  1. 启动服务
mesos-slave --master=zk://mesos-master-1:2181,mesos-master-2:2181,mesos-master-3:2181/mesos --work_dir=/var/lib/mesos/slave
四. 安装配置marathon
  1. 下载解压
wget http://downloads.mesosphere.com/marathon/v1.1.1/marathon-1.3.6.tgz
tar -zxvf marathon-1.3.6.tgz
  1. 后台运行
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。

  1. 如开发中用到docker容器,还需做一些额外配置:
//指定使用docker容器化
echo 'docker,mesos' > /etc/mesos-slave/containerizers
//考虑到拉取容器镜像等的操作,适当增加timeout的时间
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
//重启mesos-slave以使上面配置生效
sudo restart mesos-slave
  1. 相关配置
/etc/mesos-master/ 
/etc/mesos-slave/ 
/etc/marathon/conf/ 

在这些目录分别用来配置mesos-master,mesos-slave,marathon的启动参数。

相关参考自:
Centos7上Mesos和Marathon的安装

你可能感兴趣的:(Mesos+zookeeper+marathon安装)