192.168.1.110 master1
192.168.1.111 master2
192.168.1.112 master3
master1,master2,master3
systemctl stop firewalld && systemctl disable firewalld
master1,master2,master3
sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
master1,master2,master3
yum -y install mesos marathon yum -y install mesosphere-zookeeper(这个可以不用安装)
master1
touch /var/lib/zookeeper/myid echo 1 > /var/lib/zookeeper/myid
master2
touch /var/lib/zookeeper/myid echo 2 > /var/lib/zookeeper/myid
master3
touch /var/lib/zookeeper/myid echo 3 > /var/lib/zookeeper/myid
master1,master2,master3
server.1=192.168.1.110:2888:3888 server.2=192.168.1.111:2888:3888 server.3=192.168.1.112:2888:3888
下面的必做:
master1,master2,master3 vi /etc/mesos/zk
增加内容:zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos(删除原有内容)
master1,master2,master3 vi /etc/mesos-master/quorum
--quorum=2
的意思是:至少要有 2 台 master 节点在线,否则集群无法起来,所以至少要两台 master 一起启动。master1(下面三步其实一样,就是 vim /etc/mesos-master/hostname 输入ip,然后mkdir -p /etc/marathon/conf/,再vim /etc/marathon/conf/hostname 输入ip)
echo 192.168.1.110 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.110 | sudo tee /etc/marathon/conf/hostname
master2
echo 192.168.1.111 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.111 | sudo tee /etc/marathon/conf/hostname
master3
echo 192.168.1.112 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.112 | sudo tee /etc/marathon/conf/hostname
master1,master2,master3
systemctl start zookeeper && systemctl start mesos-master && systemctl start marathon && systemctl disable mesos-slave
192.168.1.113 client1(我由于机器不够,slave安装在了master上了,启动服务时注意就行,别把master停了)
systemctl stop firewalld && systemctl disable firewalld
sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
yum -y install mesos
vi /etc/mesos/zk
zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos
cd /etc/mesos-slave/ touch hostname echo 192.168.1.113 | sudo tee /etc/mesos-slave/hostname
systemctl start mesos-slave && systemctl enable mesos-slave systemctl disable mesos-master
访问 http://192.168.1.110:5050 mesos地址
访问 http://192.168.1.110:8080 marathon地址,可利用其发布docker镜像并可调整应用数量
# systemctl status mesos-slave.service
● mesos-slave.service - Mesos Slave
Loaded: loaded (/usr/lib/systemd/system/mesos-slave.service; disabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since 日 2016-02-21 23:55:50 CST; 9s ago
Process: 6009 ExecStart=/usr/bin/mesos-init-wrapper slave (code=exited, status=1/FAILURE)
Main PID: 6009 (code=exited, status=1/FAILURE)
Memory: 24.0K
CGroup: /system.slice/mesos-slave.service
2月 21 23:55:50 mesos mesos-slave[6016]: ranges {
2月 21 23:55:50 mesos mesos-slave[6016]: range {
2月 21 23:55:50 mesos mesos-slave[6016]: begin: 31000
2月 21 23:55:50 mesos mesos-slave[6016]: end: 32000
2月 21 23:55:50 mesos mesos-slave[6016]: }
2月 21 23:55:50 mesos mesos-slave[6016]: }
2月 21 23:55:50 mesos mesos-slave[6016]: role: "*"
2月 21 23:55:50 mesos systemd[1]: mesos-slave.service: main process exited, code=exited, status=1/FAILURE
2月 21 23:55:50 mesos systemd[1]: Unit mesos-slave.service entered failed state.
2月 21 23:55:50 mesos systemd[1]: mesos-slave.service failed.
如果出现这种错误,那可能是因为,slave的默认端口5051关闭了,telnet试一下,如果是,就开启此端口。
我是防火墙关了都telnet 不通5051,选择了reboot,解决了。
注:
为了使master正常工作,有三个必须配置的变量:ZooKeeper URL(zk),quorum,和work_dir。
ZooKeeper URL以如下方式指定:
zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
如果把上面的配置都作为环境变量,可以使用类似于如下的命令:
$ export MESOS_zk=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_quorum=2
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos
为了使slave正常工作,有两个必须配置的变量:master和work_dir。
如果把上面的配置都作为环境变量,可以使用类似于如下的命令:
$ export MESOS_master=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos
以上的配置基本上是可以使Mesos集群工作的最小配置。
关于Apache Mesos cluster的完整配置选项,请参考Mesos的官方文档http://mesos.apache.org/documentation/latest/configuration/。