marathon如何确定服务实例已准备就绪

时间:2015-10-22 01:27:31

标签: mesos marathon

哥们

我想知道马拉松是如何知道一个serice实例准备服务的?

在启动实例期间是否有任何界面可以自定义运行状况检查?

感谢

2 个答案:

答案 0 :(得分:1)

查看

上的文档

您不仅可以在http端点上实现各种检查,还可以实现tcp ...例如,如果您正在启动dockerized MySQL服务,则可以对tcp端口3306执行运行状况检查以验证MySQL实际上已经开始并且可以到达:

"healthChecks": [
    {
        "portIndex": 0,
        "protocol": "TCP",
        "intervalSeconds": 1,
        "timeoutSeconds": 2,
        "maxConsecutiveFailures": 5
    }
]

要保持动态,portIndex很重要。因此,例如,您使用桥接网络与Docker,并且Marathon自动选择端口(并且您只在端口上公开),然后portIndex需要设置为1。

另外,如果您希望在启动时立即进行健康检查(即任务一切都不应被视为RUNNING),您需要省略gracePeriodSeconds参数。

答案 1 :(得分:0)

您可以使用healthcheck,但也有READinessChecks。 https://github.com/mesosphere/marathon/blob/master/docs/docs/readiness-checks.md

升级策略https://mesosphere.github.io/marathon/docs/rest-api.html#upgrade-strategy

中还有最小的健康能力