gpt4 book ai didi

kubernetes - 如何将 http 响应连接到就绪和活跃度探针

转载 作者:行者123 更新时间:2023-12-02 12:00:42 25 4
gpt4 key购买 nike

当端点在/health 端点上返回 HTTP 500 时,我尝试重新启动 pod。服务,probe-pod,不应该在失败时向 pod 发送流量。

  • 应用程序需要有一个端点/start,它将通过返回 HTTP 200 来指示它是否可以接受流量。如果端点返回 HTTP 500,则应用程序尚未完成初始化
  • 应用程序需要有另一个端点/health 来指示应用程序是否仍按预期通过返回 HTTP 200 工作。如果端点返回 HTTP 500,则应用程序不再响应。
  • 探测器应使用端口 8080

  • 我知道就绪和活跃度探针是如何工作的,但是如何连接它们的输出响应基础?我无法解决第一项和第二项。我该如何测试解决方案?有人可以帮我吗?

    最佳答案

    I try to restart the pod when an endpoint returns an HTTP 500 on the /health endpoint. The service, probe-pod, should never send traffic to the pod while it is failing.


    这是带有就绪探针的 Kubernetes 中的默认行为。如果探测失败,则 Pod 尚未“准备好”,并且没有服务将流量转发到该 Pod。您可以使用 periodSeconds 来控制它的响应性(有一些性能损失)。选项。例如,您可以将其设置为 1 秒,以确保一旦探测失败,它就会从流量池中取出。
    在就绪、活跃度和启动探测方面,他们有 httpGet 机制。他们考虑所有状态代码 200-399为通过,其他一切为失败,但它们不允许您控制哪些状态代码是“成功”,哪些是“失败”。
    如果您想更好地控制状态码,可以使用 ExecAction 机制,只需使用这样的脚本:
    CODE=`curl -s -o /dev/null -w '%{http_code}' http://www.example.org/`; if [ "$CODE" -ge 200 ] && [ "$CODE" -le 399 ]; then exit 0; else exit 1; fi
    在上述情况下,您必须确保 curl已安装在您的容器中。

    关于kubernetes - 如何将 http 响应连接到就绪和活跃度探针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62698476/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com