在DC / OS覆盖网络中使用Docker运行的任务中的运行状况检查失败

时间:2018-03-28 05:18:00

标签: docker marathon mesosphere dcos

我目前正在使用名为dcos的DC / OS默认虚拟网络在覆盖网络中部署Marathon应用程序。

此外,经过大量搜索,我设法找出了如何使用此1论坛讨论部署在覆盖网络中运行Marathon任务的Docker容器。

以下是我为WSO2 Identity Server定义的示例Marathon应用程序:

{
  "id": "wso2is-analytics",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "wso2is-analytics:5.4.1",
      "portMappings": [
        { "protocol": "tcp",
          "hostPort": 0,
          "labels": {
            "VIP_0": "/wso2is-analytics:9764"
          },
          "containerPort": 9764,
          "servicePort": 9764
        },
        { "protocol": "tcp",
          "hostPort": 0,
          "labels": {
            "VIP_0": "/wso2is-analytics:9444"
          },
          "containerPort": 9444,
          "servicePort": 9444
        },
        { "protocol": "tcp",
          "hostPort": 0,
          "labels": {
            "VIP_0": "/wso2is-analytics:7612"
          },
          "containerPort": 7612,
          "servicePort": 7612
        },
        { "protocol": "tcp",
          "hostPort": 0,
          "labels": {
            "VIP_0": "/wso2is-analytics:7712"
          },
          "containerPort": 7712,
          "servicePort": 7712
        }
      ],
      "forcePullImage": false
    },
    "volumes": [
      {
        "containerPath": "/home/wso2carbon/volumes/",
        "hostPath": "/volumes/wso2/identity-server-analytics/",
        "mode": "RW"
      }
    ]
  },
  "env": {
    "CLUSTERING_ENABLED": "false"
  },
  "instances": 1,
  "cpus": 2,
  "mem": 2048,
  "healthChecks": [
    {
      "gracePeriodSeconds": 200,
      "portIndex": 0,
      "protocol": "TCP"
    }
  ],
  "labels":{
    "HAPROXY_GROUP":"external"
  },
  "ipAddress": {
    "networkName": "dcos"
  }
}

目前,经过分析,确定在所有节点上设置了每个任务的唯一IP地址。

但是,在覆盖网络中部署时,定义的运行状况检查会不断失败。在覆盖网络外部部署时(使用Docker桥接网络),相同的运行状况检查成功通过。

如何解决此问题?对此事的任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

您的容器在哪个界面上收听?如果它不监听环回,可能是问题,请参阅MESOS-6517。你能共享执行者日志吗?这有助于证实这一假设。