Have checked this URL (https://support.mesosphere.com/hc/en-us/articles/205575835-My-Marathon-app-isn-t-deploying-What-s-wrong-) the logs did not show any reason. Also logs in /var/log/syslog and /var/log/mesos do not give any reason.
The JSON file of the app I'm trying to deploy:
{
"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
}]
}
I faced similar issue in my Mesos + Marathon setup. The reason was lack of resources on the slaves.
In your json file, you have not specified any value for cpus
or mem
directives. Default, AFAIK, for these are 1 CPU and 128 MB of memory. If no slave has enough resources available, your app will keep lurking around in the deployment state.
On your Mesos master UI, check the total and available resources. If your app doesn't need much CPU or memory, try setting these values to something like below in your json file:
"cpus": 0.1,
"mem": 16
and see if it succeeds to start.
EDIT: Just saw that you're trying to run Prometheus Node Exporter. I am running that on my setup and it's consuming just about 25 MB memory.