何时使用 Docker HEALTHCHECK 与 livenessProbe / readinessProbe

When to use Docker HEALTHCHECK vs livenessProbe / readinessProbe

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

如果您使用 Kubernetes,我建议仅使用 Kubernetes liveness/readiness 检查,因为 Docker 健康检查 has not been integrated in the Kubernetes as of now (release 1.12). This means that Kubernetes does not expose the check status in its api server, and the internal system components can not consume this information. Also, Kubernetes distinguishes liveness from readiness checks,以便其他组件可以做出不同的反应(例如,重新启动容器与从服务的端点列表中删除 pod),docker HEALTHCHECK 当前不提供。

更新:从 Kubernetes 1.8 开始,Docker HEALTHCHECK 在 Kubernetes 中已经 disabled explicitly