27

在 Dockerfile 中指定 HEALTHCHECK 的新功能对于 Kubernetes 探测指令似乎是多余的。关于何时使用什么的任何建议?

4

1 回答 1

41

如果你使用 Kubernetes,我建议只使用 Kubernetes 的 liveness/readiness 检查,因为 Docker 健康检查目前还没有集成到 Kubernetes(1.12 版)。这意味着 Kubernetes 不会在其 api 服务器中公开检查状态,内部系统组件无法消费此信息。此外,Kubernetes 将 liveness 与readiness checks区分开来,因此其他组件可以做出不同的反应(例如,重新启动容器与从服务的端点列表中删除 pod),这是 docker HEALTHCHECK 目前不提供的。

更新:自 Kubernetes 1.8 起,Docker HEALTHCHECK 已在 Kubernetes 中明确禁用

于 2017-01-05T02:33:42.130 回答