为什么既需要活跃又需要准备

时间:2019-02-18 10:18:09

标签: kubernetes kubernetes-health-check

在对kubernetes吊舱进行健康检查时,为什么即使我们已经准备就绪也要进行活动调查?

“就绪”探针已继续检查Pod中的应用程序是否准备就绪可以处理请求,这意味着Pod处于活动状态。但是,为什么还需要进行活力探测?

3 个答案:

答案 0 :(得分:8)

探针的含义不同,结果也不同:

  • 活动探针失败->重新启动pod
  • 准备就绪测试失败->不向该Pod发送流量

您无法从准备状态确定活力,反之亦然。仅仅因为pod无法正确接受流量,并不意味着需要重启,这可能意味着它只需要时间来完成一些工作。

如果您要部署例如php应用程序,这两个可能会相同,但是k8s是通用系统,支持多种类型的工作负载。


发件人:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

  

kubelet使用活动探针来了解何时重新启动Container。例如,活动性探针可能会陷入僵局,而应用程序正在运行,但无法取得进展。在这种状态下重新启动容器可以帮助使应用程序在存在错误的情况下更加可用。

     

kubelet使用就绪性探测器来了解何时Container准备开始接受流量。当Pod的所有容器都准备就绪时,即视为准备就绪。此信号的一种用法是控制将哪些Pod用作服务的后端。当Pod尚未就绪时,会将其从服务负载平衡器中删除。


旁注:实际上,准备工作应该是活力的一部分,这意味着准备意味着活力(而失败的活力则意味着准备不足)。但这并不会改变上面的解释,因为如果您仅准备就绪,则只能暗示不需要重新启动,这与根本没有任何重新启动的探针相同。另外,由于探针是单独定义的,因此无法保证k8s是一个是另一个的子集

答案 1 :(得分:0)

“就绪”探针会检查您的应用程序是否准备就绪,可以满足请求的要求,并且在满足就绪性检查之前,它不会将该特定的容器添加到“就绪”容器中。主要区别在于,如果未准备好Pod,则不会重新启动Pod。

Liveness探针会检查Pod是否尚未准备就绪(不满足特定条件),它将重新启动Pod,以希望此Pod将恢复并准备就绪。

答案 2 :(得分:-1)

Kubernetes允许您定义一些使应用程序可用的东西。

1:容器的动态探针。

2 :为您的 Pod 准备就绪的探测。

1-活动性探针:,它们可确保不健康的容器自动重启,从而帮助保持应用程序健康。

2:准备情况调查,它们有助于定期调用并确定特定Pod是否应接收客户请求。


就绪探针的操作

启动容器时,可以将Kubernetes配置为等待经过可配置的时间,然后再执行首次就绪检查。之后,它会定期调用该探针,并根据就绪探针的结果进行操作。

  • 如果吊舱报告尚未准备就绪,则会将其从服务中删除。只是想一下-效果与广告连播完全不匹配服务的标签选择器时一样。
  • 如果吊舱再次准备就绪,则会重新添加。

活力和就绪探针的重要区别

1:与活动性探测不同(即如上所述:“如果Pod报告尚未准备就绪,则将其从服务中删除”),如果容器未通过就绪检查,它将赢得不会被杀死或重启。

2 :“活动性”探针通过杀死不健康的容器并用新的健康容器替换容器来保持容器的健康,而就绪性探针则确保只有准备好处理请求的容器才能接收容器

希望这对您有所帮助。