【问题标题】:why both liveness is needed with readiness为什么既需要活力又需要准备
【发布时间】:2019-07-11 16:46:57
【问题描述】:

在对 kubernetes pod 进行健康检查时,为什么即使我们已经维护就绪探测,也需要进行活跃度探测?

Readiness probe 已经持续检查 pod 中的应用程序是否准备好为请求提供服务,这意味着 pod 处于活动状态。但是,为什么需要活性探测?

【问题讨论】:

    标签: kubernetes kubernetes-health-check


    【解决方案1】:

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

    • 活性探测失败 -> 重启容器
    • 准备就绪探测失败 -> 不向该 pod 发送流量

    您无法根据准备情况来确定活跃度,反之亦然。仅仅因为 pod 不能接受流量知道,并不意味着需要重新启动,它可能意味着它只需要时间来完成一些工作。

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


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

    kubelet 使用 liveness probes 来了解何时重启 Container。例如,活跃度探针可以捕获死锁,即应用程序正在运行,但无法取得进展。在这种状态下重新启动容器有助于使应用程序更加可用,尽管存在错误。

    kubelet 使用就绪探测来了解容器何时准备好开始接受流量。当一个 Pod 的所有容器都准备好时,它就被认为准备好了。此信号的一种用途是控制哪些 Pod 用作服务的后端。当 Pod 未准备好时,它会从服务负载均衡器中移除。


    旁注:实际上就绪应该是活跃度的一个子集,这意味着就绪度意味着活跃度(而失败的活跃度意味着失败的准备度)。但这并没有改变上面的解释,因为如果你只有准备好,你只能暗示什么时候不需要重启,这和根本没有任何重启的探针是一样的。同样因为探针是单独定义的,所以不能保证 k8s 一个是另一个的子集

    【讨论】:

      【解决方案2】:

      就绪探测检查您的应用程序是否已准备好为请求提供服务,并且在满足就绪检查之前,它不会将该特定 pod 添加到就绪 pod pull 中。主要区别在于,如果 pod 未准备好,它不会重新启动 pod。

      Liveness probe 检查 pod 是否未准备好(不满足特定条件),它会重新启动 pod,希望该 pod 能够恢复并准备好。

      【讨论】:

        【解决方案3】:

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

        1: 活性探针为您的容器

        2: Readiness probe 用于您的 Pod

        1- 活跃度探测:它们通过确保不健康的容器自动重启来帮助保持您的应用健康。

        2:就绪探测它们通过定期调用来帮助确定特定 Pod 是否应该接收客户端请求。


        就绪探测操作

        当容器启动时,Kubernetes 可以配置为在执行第一次就绪检查之前等待可配置的时间过去。之后,它会定期调用探针并根据就绪探针的结果进行操作。

        • 如果 pod 报告它尚未准备好,则会将其从服务中删除。想一想——效果与 pod 根本不匹配服务的标签选择器时的效果相同。
        • 如果 pod 再次准备就绪,则会重新添加。

        liveness 和 readiness 探针之间的重要区别

        1: 不像 liveness probes(即上面提到的“如果一个 pod 报告它还没有准备好,它就会从服务中删除”),如果一个容器没有通过就绪检查,它就赢了'不会被杀死或重新启动。

        2: Liveness 探针通过杀死不健康的容器并用新的健康容器替换它们来保持 Pod 的健康,而 Readiness 探针确保只有准备好为请求提供服务的 Pod 才能接收它们

        我希望这对你有更好的帮助。

        【讨论】:

        • 我没有看到强烈反对的理由!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-09
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-18
        • 2012-08-09
        相关资源
        最近更新 更多