###############################################################
mesos 集群功能测试
###############################################################
1:首先准备一个json文件(hello.json)
{
"id": "hello",
"cmd": "echo hello; sleep 10",
"mem": 16,
"cpus": 0.1,
"instances": 1,
"disk": 0.0,
"ports": [0]
}
3:然后调用api,通过marathon启动一个应用
curl -i -H 'Content-Type: application/json' -d@hello.json 172.16.7.12:8080/v2/apps
然后登陆,marathon 即可看到进程已经启动。
5:完整json 样例
{
"id": "/product/service/myApp",
"cmd": "env && sleep 300",
"args": ["/bin/sh", "-c", "env && sleep 300"]
"cpus": 1.5,
"mem": 256.0,
"portDefinitions": [
{ "port": 8080, "protocol": "tcp", "name": "http", labels: { "VIP_0": "10.0.0.1:80" } },
{ "port": 9000, "protocol": "tcp", "name": "admin" }
],
"requirePorts": false,
"instances": 3,
"executor": "",
"container": {
"type": "DOCKER",
"docker": {
"p_w_picpath": "group/p_w_picpath",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 8080,
"hostPort": 0,
"servicePort": 9000,
"protocol": "tcp"
},
{
"containerPort": 161,
"hostPort": 0,
"protocol": "udp"
}
],
"privileged": false,
"parameters": [
{ "key": "a-docker-option", "value": "xxx" },
{ "key": "b-docker-option", "value": "yyy" }
]
},
"volumes": [
{
"containerPath": "/etc/a",
"hostPath": "/var/data/a",
"mode": "RO"
},
{
"containerPath": "/etc/b",
"hostPath": "/var/data/b",
"mode": "RW"
}
]
},
"env": {
"LD_LIBRARY_PATH": "/usr/local/lib/myLib"
},
"constraints": [
["attribute", "OPERATOR", "value"]
],
"acceptedResourceRoles": [ /* since 0.9.0 */
"role1", "*"
],
"labels": {
"environment": "staging"
},
"fetch": [
{ "uri": "https://raw.github.com/mesosphere/marathon/master/README.md" },
{ "uri": "https://foo.com/archive.zip", "executable": false, "extract": true, "cache": true }
],
"dependencies": ["/product/db/mongo", "/product/db", "../../db"],
"healthChecks": [
{
"protocol": "HTTP",
"path": "/health",
"gracePeriodSeconds": 3,
"intervalSeconds": 10,
"portIndex": 0,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 3
},
{
"protocol": "HTTP",
"path": "/machinehealth",
"gracePeriodSeconds": 3,
"intervalSeconds": 10,
"port": 3333,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 3
},
{
"protocol": "TCP",
"gracePeriodSeconds": 3,
"intervalSeconds": 5,
"portIndex": 1,
"timeoutSeconds": 5,
"maxConsecutiveFailures": 3
},
{
"protocol": "COMMAND",
"command": { "value": "curl -f -X GET http://$HOST:$PORT0/health" },
"maxConsecutiveFailures": 3
}
],
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600,
"upgradeStrategy": {
"minimumHealthCapacity": 0.5,
"maximumOverCapacity": 0.2
}
}