马拉松如何确定服务实例已准备好服务
how marathon determine a service instance is ready to service
哥们
我想知道 marathon 如何知道服务实例已准备好提供服务?
是否有接口可以自定义实例启动时的健康检查?
谢谢
查看
上的文档
您可以实施各种检查,不仅在 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
升级策略中还有minimumHealthCapacity https://mesosphere.github.io/marathon/docs/rest-api.html#upgrade-strategy
哥们
我想知道 marathon 如何知道服务实例已准备好提供服务?
是否有接口可以自定义实例启动时的健康检查?
谢谢
查看
上的文档您可以实施各种检查,不仅在 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
升级策略中还有minimumHealthCapacity https://mesosphere.github.io/marathon/docs/rest-api.html#upgrade-strategy