对Mesos和Marathon的安装官方文档有较详细的安装说明,但是英文的。我参照官方安装文档(https://open.mesosphere.com/getting-started/install/),在测试环境试装了一下,这里整理下安装配置的步骤。
测试环境
服务器IP |
说明 |
192.168.0.101 |
Master节点 |
192.168.0.102 |
Master节点 |
192.168.0.103 |
Master节点 |
192.168.0.104 |
Slave节点 |
192.168.0.105 |
Slave节点 |
192.168.0.106 |
Slave节点 |
我们通常采用多个master节点和多个slave节点来实现高可用。这里使用3个master节点来进行高可用配置,每个master节点上都运行mesos-master,marathon和提供选主机制的zookeeper服务。slave节点上只需要运行mesos-slave服务,后期如果需要添加slave节点,可以很容易的添加。为了简单,下面直接采用yum方式安装(除此之外,还可以采用编译安装)。
Master节点安装和配置
1 安装服务
在所有的Master节点上执行下面的操作。
rpm -Uvh http:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere
yum install mesos marathon mesosphere-zookeeper -y
2 zookeeper配置
1)每个master节点设置不同的myid值
在/var/lib/zookeeper/myid中写入一个1到255范围的数值,需要注意的是,每个节点的myid不要重复。这里将3个master节点的myid分别设置为:1,2,3
2)每个master节点设置zoo.cfg
在配置文件/etc/zookeeper/conf/zoo.cfg中加入下面内容:
server.1=192.168.0.101:2888:3888
server.2=192.168.0.102:2888:3888
server.3=192.168.0.103:2888:3888
3)启动zookeeper服务
systemctl start zookeeper
3 mesos-master和marathon配置
1)每个master节点的/etc/mesos/zk配置文件中设置zk的地址
zk:
2)/etc/mesos-master/quorum中设置quorum值
这个值要大于master数/2,这里master数为3,则要设为2
3)停掉mesos-slave
systemctl stop mesos-slave.service
systemctl disable mesos-slave.service
4)启动mesos-master marathon
systemctl start mesos-master
systemctl start marathon
Slave节点安装和配置
1 安装服务
在所有的Slave节点上执行下面的操作。
rpm -Uvh http:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere
yum install mesos -y
2 mesos-slave配置
1)在/etc/mesos/zk中设置zk的地址
这里的zk地址就是master节点所使用的同一套zookeeper服务的地址。
zk:
2)关闭mesos-master服务
systemctl stop mesos-master.service
systemctl disable mesos-master.service
3)启动mesos-slave服务
systemctl start mesos-slave
按照以上的安装和配置,一个高可用的Mesos和Marathon服务就搭建完成了。可以通过http://:5050来访问Mesos的web界面,通过http://:8080来访问Marathon的web界面。可以是任意一个master节点的IP。
最后提醒一下需要注意的是:
1)服务器的jdk要是1.8以上版本的,不然会有报错,因为marathon是要求jdk1.8以上的;
2)各节点配一下/etc/hosts或指向一个共用的DNS,确保相互能够访问。如果不想配hosts,在启动时指定–hostname为IP即可;
3)如果想在marathon上运行docker,则需要一些额外的配置:
echo 'docker,mesos' > /etc/mesos-slave/containerizers
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
systemctl restart mesos-slave
4)几个配置启动参数的目录:
/etc/mesos-master/
/etc/mesos-slave/
/etc/marathon/conf/
在这些目录分别用来配置mesos-master,mesos-slave,marathon的启动参数。以参数名为文件名,参数值为文件内容即可。