检查了此网址(https://support.mesosphere.com/hc/en-us/articles/205575835-My-Marathon-app-isn-t-deploying-What-s-wrong-)日志没有显示任何原因。同时登录/ var / log / syslog和/ var / log / mesos也没有任何理由。
我正在尝试部署的应用的JSON文件:
{
"id": "/nodeexporter",
"instances": 1,
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "prom/node-exporter",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 9100,
"hostPort": 0,
"protocol": "tcp"
}
]
}
},
"healthChecks": [{
"protocol": "TCP",
"gracePeriodSeconds": 600,
"intervalSeconds": 30,
"portIndex": 0,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 2
}]
}
答案 0 :(得分:1)
我在Mesos + Marathon设置中遇到了类似的问题。原因是奴隶缺乏资源。
在json文件中,您没有为cpus
或mem
指令指定任何值。默认值为AFAIK,这些是1 CPU和128 MB内存。如果没有奴隶拥有足够的可用资源,您的应用程序将在部署状态中不断潜伏。
在Mesos主UI上,检查总资源和可用资源。如果您的应用程序不需要太多CPU或内存,请尝试在json文件中将这些值设置为如下所示:
"cpus": 0.1,
"mem": 16
并查看它是否成功启动。
编辑:刚看到您正在尝试运行Prometheus Node Exporter。我在我的设置上运行它,它只消耗大约25 MB的内存。
答案 1 :(得分:1)
如果任务失败并且您在stdout或stderr中都没有看到任何内容,则可以检查正在执行或已执行任务的从站上的日志,以查看是否存在原因(即无法找到容器)