作者信息:https://home.cnblogs.com/u/huangjiabobk

在K8S中,pod中readness 和 liveness 的区别和各自应用场景是什么?

在Kubernetes(K8s)中,Pod的readiness和liveness探针是两种重要的健康检查机制,它们各自有着不同的应用场景和功能。以下是对这两者的详细解释:

  1. Liveness Probe(存活探针)

    • 作用:Liveness探针主要用于探测应用是否还活着。如果检测到应用没有存活(即探针失败),Kubernetes会杀掉当前Pod并重启它。

    • 应用场景:适用于需要确保应用持续运行且在发生故障时能够自动恢复的场景。例如,当应用因为死锁或其他致命错误而停止响应时,Liveness探针可以触发Pod的重启,从而恢复应用的正常运行。

    • 配置示例

      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 10
        periodSeconds: 10
        timeoutSeconds: 5
        failureThreshold: 3
      

      在这个示例中,Liveness探针会在容器启动后等待10秒再进行第一次探测,每隔10秒执行一次探测,如果在5秒内没有响应则认为探测失败,连续失败3次才认为容器不健康。

  2. Readiness Probe(就绪探针)

    • 作用:Readiness探针用于探测应用是否准备好接受请求访问。如果检测应用没有准备好(即探针失败),Kubernetes会把该Pod从服务的负载均衡池中移除,直到它再次变得可用。

    • 应用场景:适用于需要确保应用在完全准备好后才处理请求的场景。例如,在应用启动过程中可能需要加载配置文件、连接数据库或执行其他初始化操作,这时可以使用Readiness探针来确保这些操作完成后再将Pod标记为就绪状态。

    • 配置示例

      readinessProbe:
        httpGet:
          path: /readyz
          port: 8080
        initialDelaySeconds: 10
        periodSeconds: 5
        timeoutSeconds: 3
        failureThreshold: 3
      

      在这个示例中,Readiness探针会在容器启动后等待10秒再进行第一次探测,每隔5秒执行一次探测,如果在3秒内没有响应则认为探测失败,连续失败3次才认为容器不就绪。

综上所述,Liveness探针和Readiness探针在Kubernetes中扮演着不同的角色。Liveness探针主要用于确保应用的持续运行和自动恢复,而Readiness探针则用于确保应用在完全准备好后才处理请求。通过合理配置这两种探针,可以提高应用的可靠性和稳定性。

posted @ 2024-10-25 13:27  黄嘉波  阅读(30)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波