哥儿们
我想知道马拉松是如何知道服务实例准备服务的?
是否有任何界面可以在启动实例期间自定义运行状况检查?
谢谢
看看文档
您可以实现各种检查,不仅在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
参数。
您可以使用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中还有最小的健康能力