创建App
将下面的代码保存为app.json
{
"id": "shell",
"cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done",
"cpus": 0.1,
"mem": 10.0,
"instances": 1
}
执行下面的命令:
curl http://10.136.157.23:8080/v2/apps -d @app.json -H "Content-type: application/json"
其将json文件通过marathon api /v2/apps传递给marathon调度器,请求创建一个实例,资源需求为0.1cpu、10M内存,执行shell命令行。cmd将被发送给Mesos底层执行器进行执行,通过/bin/bash -c ${cmd}。
进入Marathon管理界面,如图3-1所示,可以看到名为shell的App正在运行,App在marathon框架中被定义为长服务,一对多的关系,即为一个App可以有多个task。
图1
可以发现marathon提供app的自动扩展,健康检查以及运行情况的健康,日志管理等功能。
也可以在Marathon管理页面直接创建App:
图2
扩容和缩容
marathon对app的生命周期进行有效的管理,首先介绍其自动扩缩功能,选择Scale Application进行快速扩容,在如图3中填上3,即可扩展到3个实例。
图3点击“Scale Application”,稍等片刻后,shell App扩容成3个实例:
图4
网友评论