k8s 容器健康检查探针

 
在 Kubernetes 中,readinessProbe、livenessProbe 和 startupProbe 是三种不同类型的探针,用于检测容器的不同状态。它们在容器的生命周期中的执行顺序和优先级是不同的,每种探针都有其特定的用途和配置。

1. 先后顺序

  • Startup Probe:这是最早执行的探针,用于检测容器启动过程中的状态。它只在容器启动后的一段时间内进行检测,这段时间由 startupProbe 的 failureThreshold 决定。如果容器在这段时间内没有成功启动,startupProbe 失败会导致容器重启。
  • Liveness Probe:这是在容器启动后定期执行的探针,用于检测容器是否仍然健康。如果 livenessProbe 失败,容器会被重启。这是为了确保容器在运行过程中不会因为某些原因变得不健康。
  • Readiness Probe:这是在容器启动后定期执行的探针,用于检测容器是否准备好接收流量。如果 readinessProbe 失败,容器会被从服务中移除,直到它准备好接收流量。

2. 优先级

  • Startup Probe:最高优先级,因为它决定了容器是否能够成功启动。
  • Liveness Probe:次高优先级,因为它决定了容器是否需要被重启。
  • Readiness Probe:最低优先级,因为它只影响容器是否接收流量,而不会导致容器重启。

3. 有什么不同

  • 用途不同:
    • startupProbe 用于检测容器启动过程中的状态,确保容器在启动后能够正常工作。
    • livenessProbe 用于检测容器运行过程中的状态,确保容器在运行过程中保持健康。
    • readinessProbe 用于检测容器是否准备好接收流量,确保只有准备好的容器才会接收到请求。
  • 失败处理不同:
    • startupProbe 失败会导致容器重启。
    • livenessProbe 失败会导致容器重启。
    • readinessProbe 失败会导致容器从服务中移除,直到它准备好接收流量。
  • 执行频率不同:
    • startupProbe 只在容器启动后的一段时间内执行。
    • livenessProbe 和 readinessProbe 会定期执行,频率由 periodSeconds 参数决定。
  • 超时处理不同:
    • startupProbe 有一个 failureThreshold 参数,表示在这段时间内允许失败的次数。
    • livenessProbe 和 readinessProbe 也有 failureThreshold 参数,表示在连续失败多少次后采取行动
另外:
如果在 Kubernetes 的 YAML 配置文件中没有显式配置 readinessProbelivenessProbestartupProbe 这三种探针,Kubernetes 将依赖于默认的行为来判断 Pod 的状态:
  1. Pod 启动成功:
    • 对于没有配置 startupProbe 的容器,Kubernetes 会认为容器一旦启动就成功。容器启动成功通常意味着容器内的主进程已经开始运行。
    • Kubernetes 会检查容器是否在运行,如果容器正常启动并且没有立即退出,那么 Kubernetes 就会认为该容器已经启动成功。
  2. Pod 接收流量:
    • 对于没有配置 readinessProbe 的容器,Kubernetes 默认认为容器一旦启动就准备好接收流量。这意味着容器会被立即加入到服务的负载均衡器中,开始接收请求。
    • 这种情况下,如果容器启动后需要一些时间来初始化或者等待某些服务就绪,那么在这段时间内,发送到该容器的请求可能会失败。
  3. Pod 健康状态:
    • 对于没有配置 livenessProbe 的容器,Kubernetes 没有机制来自动检测容器是否仍然健康。如果容器因为某些原因变得不健康(例如,应用程序崩溃或者进入无限循环),Kubernetes 不会重启该容器,除非容器自己退出。
    • 在这种情况下,如果需要自动检测容器的健康状况,需要显式配置 livenessProbe
总结来说,如果没有配置这三种探针,Kubernetes 会假设容器一旦启动就成功、准备好接收流量,并且一直保持健康。这可能会导致一些问题,比如不健康的容器继续处理请求,或者在容器需要时间初始化时过早地接收流量。因此,为了提高应用的稳定性和可靠性,建议在 Pod 的 YAML 配置中显式配置这些探针。
posted @ 2025-04-28 19:14  slena  阅读(53)  评论(0)    收藏  举报
/*鼠标跟随效果*/