如果运行在Docker镜像中的马拉松应用程序处于“部署”状态,那么我们应该在哪里检查应用程序未部署的原因?

已经检查这个URL( https://support.mesosphere.com/hc/en-us/articles/205575835-My-Marathon-app-isn-t-deploying-What-s-wrong- )日志没有显示任何原因。 此外,login/ 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 }] } 

我在Mesos + Marathon设置中面临类似的问题。 原因是奴隶缺乏资源。

在你的json文件中,你没有为cpusmem指令指定任何值。 AFAIK的默认值是1个CPU和128 MB的内存。 如果没有奴隶有足够的可用资源,您的应用程序将保持潜伏在部署状态。

在您的Mesos主UI上,检查总的和可用的资源。 如果您的应用程序不需要太多的CPU或内存,请尝试在您的json文件中将这些值设置为如下所示:

 "cpus": 0.1, "mem": 16 

看看它是否成功开始。

编辑 :只是看到你正在试图运行普罗米修斯节点出口商。 我正在运行,我的设置,它只消耗大约25 MB的内存。

如果任务失败,并且您在stdout或stderr中看不到任何内容,则可以检查正在执行或已执行任务的从站上的日志,以查看是否存在原因(即找不到容器)。