1

已检查此 URL(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
      }]
  }
4

2 回答 2

1

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

在您的 json 文件中,您没有为cpusormem指令指定任何值。默认情况下,AFAIK,因为它们是 1 个 CPU 和 128 MB 内存。如果没有从站有足够的可用资源,您的应用程序将继续潜伏在部署状态。

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

"cpus": 0.1,
"mem": 16

看看它是否成功启动。

编辑:刚刚看到您正在尝试运行 Prometheus Node Exporter。我在我的设置上运行它,它只消耗大约 25 MB 内存。

于 2015-08-04T10:02:22.110 回答
1

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

于 2015-08-20T15:43:35.700 回答