kubernetes 何时使用Docker健康检查与活动探针/就绪探针

ubof19bj  于 2022-12-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(208)

在Dockerfile中指定HEALTHCHECK的新功能对于Kubernetes探测指令来说似乎是多余的。

s1ag04yj

s1ag04yj1#

如果您使用Kubernetes,我建议仅使用Kubernetes活动/就绪检查,因为截至目前,Docker运行状况检查has not been integrated in the Kubernetes(1.12版)。这意味着Kubernetes不会在其api服务器中公开检查状态,并且内部系统组件无法使用此信息。此外,Kubernetes将活动性与就绪性检查区分开来,以便其他组件可以做出不同的React(例如,重新启动容器与从服务的端点列表中移除容器),这是Docker HEALTHCHECK当前不提供的。
更新:自Kubernetes 1.8以来,Docker HEALTHCHECK在Kubernetes中已变为disabled explicitly

dgtucam1

dgtucam12#

在Docker上

HEALTHCHECK基本上是一个在容器生命周期内循环运行的命令。2它被用来让Docker守护进程知道容器的健康状况(即状态)。
它在一般情况下并不总是有用的。
"在Kubernetes"

  • liveness* 探测是在容器的生命周期内循环运行的命令,用于让Kubelet知道容器是 alivehealthy(即启动并运行)。如果命令返回0,则认为liveness探测成功;如果命令返回非零值,则认为liveness探测失败。如果liveness探测失败,则Kubelet将终止容器并重新启动。
  • 准备就绪 * 探测是在容器的生命周期内循环运行的命令,用于让Kubelet知道pod是否已经 * 准备就绪 * 以在其已经 * 活动 * 的同时接收业务(即,准备好按预期工作)。

通过检测将自动重新启动的不正常容器,它提供了某种程度的弹性,这在某种意义上是有用的。

相关问题