官方提供了两种安装方式(http://mesosphere.github.io/marathon/docs/),一种是下载压缩包解压,一种是使用yum(https://mesosphere.com/blog/mesosphere-package-repositories/)。
第一种没有问题,解压后,执行脚本加上参数启动即可:
./bin/start --master zk://127.0.0.1:2181/mesos --zk zk://127.0.0.1:2181/marathon
第二种只需要执行指令即可:
sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm sudo yum -y install marathon
安装完成之后,执行systemctl start marahon后,浏览器打开http://ip:8080,发现打不开。
执行systemctl status marahon或者查看/var/logs/messages,发现报错“Required option 'master' not found”。
显然marathon启动需要执行master参数,尝试用命令直接启动,是没问题的,说明yum安装的没有问题。官网页没有告知如何配置相关参数,百度到一种说法,类似于mesos的配置方式,即:
echo zk://127.0.0.1:2181/mesos > /etc/marathon/conf/master
echo zk://127.0.0.1:2181/marathon > /etc/marathon/conf/zk
再次尝试启动发现问题依旧,于是查看/usr/lib/systemd/system/marathon.service文件,发现服务启动时指定了一个环境变量文件,调用了脚本/usr/share/marathon/bin/marathon启动,没有与入参相关的地方。查看这个脚本,也发现并没有类似mesos那种读取配置文件的地方。
猜测marahon新版本可能不支持这种用法了,与是google了一下,终于找到了官方jira的一个issue(https://jira.mesosphere.com/browse/MARATHON-7932),原来在1.5(https://github.com/mesosphere/marathon/blob/master/changelog.md#changes-from-14x-to-150)之后,已经改为通过环境变量配置相关参数。
于是修改/etc/default/marathon文件,添加
MARATHON_MASTER="zk://127.0.0.1:2181/mesos"
MARATHON_ZK="zk://127.0.0.1:2181/marathon"
再次尝试启动服务后成功。