gpt4 book ai didi

Kubernetes livenessProbe http 结果?

转载 作者:行者123 更新时间:2023-12-02 11:34:51 26 4
gpt4 key购买 nike

我们有一个 HTTP livenessProbe 设置,如果服务不健康,它会返回 500,并打印出问题所在。
有什么方法可以查看 livenessProbe 返回的输出吗?

我可以将其记录在应用程序中,但也许可以从 Kubernetes 中查看?

目前,我唯一看到的pod describe:

Killing container with id docker://12568746c312e6646fd6ecdb2123db448be0bc6808629b1a63ced8b7298be444:pod "test-3893895584-7f4cr_test(524091bd-49d8-11e7-bd00-42010a840224)" container "test" is unhealthy, it will be killed and re-created.

在 GKE 上运行

最佳答案

不幸的是,似乎没有办法访问失败的 HTTP 探测的 HTTP 响应主体。

为了证实这种怀疑,让我们看一下 HTTP Prober's source code ,它在 Kubelet 守护进程中运行:

func DoHTTPProbe(url *url.URL, headers http.Header, client HTTPGetInterface) (probe.Result, string, error) {
// ...
body := string(b)
if res.StatusCode >= http.StatusOK && res.StatusCode < http.StatusBadRequest {
glog.V(4).Infof("Probe succeeded for %s, Response: %v", url.String(), *res)
return probe.Success, body, nil
}
glog.V(4).Infof("Probe failed for %s with request headers %v, response body: %v", url.String(), headers, body)
return probe.Failure, fmt.Sprintf("HTTP probe failed with statuscode: %d", res.StatusCode), nil
}

如您所见,Kubelet 守护进程将在其自己的日志中记录失败探测的 HTTP 响应主体,但即便如此,前提是详细级别设置为 4 或更高。除了在自己的日志中记录响应之外,它不会从 DoHTTPProbe 方法传回,也不会被 Kubelet 进一步处理。

正如您自己已经指出的,我认为您最安全的选择是从您的应用程序本身记录您需要的数据。

关于Kubernetes livenessProbe http 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44367370/

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