【问题标题】:Liveness probe failures not removing the pod ip from the service endpoint未从服务端点删除 pod ip 的活动探测失败
【发布时间】:2019-11-20 18:51:27
【问题描述】:

我有一个包含 2 个 Nginx 副本的部署。它只有 liveness probe 来监控服务的健康状况。由于流量大,我的 liveness probe 失败,重启了 Nginx 容器,但是 pod status running state 和 Pod condition 都是 Ready。由于那个 POD,IP 没有被移除服务端点并且请求被发送到重新启动的 pod,这导致了一些失败。

【问题讨论】:

    标签: kubernetes probe


    【解决方案1】:

    根据container probes

    • livenessProbe:表示Container是否正在运行。如果 liveness 探测失败,kubelet 会杀死 Container,然后 容器受其重启政策的约束 [...]

    • readinessProbe:指示容器是否准备好为请求提供服务。 如果就绪探测失败,端点 控制器从所有端点中删除 Pod 的 IP 地址 与 Pod 匹配的服务 [...]

    您需要add a readinessProbe 来授予将删除不健康容器的端点。

    Readiness 探针的配置类似于 liveness 探针。唯一的 区别在于您使用 readinessProbe 字段而不是 livenessProbe 字段。

    【讨论】:

    • 感谢@Eduardo 的澄清。这意味着如果我没有准备就绪探测,则可能有机会将请求发送到正在重新启动的容器,因为活动探测失败并导致请求失败。如果我错了,请纠正我。
    • @Rakesh 是正确的。理想情况下,您应该同时配置 livenessreadiness 探针。
    猜你喜欢
    • 2019-07-17
    • 2019-07-20
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多