哥们
我想知道马拉松是如何知道一个serice实例准备服务的?
在启动实例期间是否有任何界面可以自定义运行状况检查?
感谢
答案 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
中还有最小的健康能力