【问题标题】:K8s: Log response body of the HTTP probe 'httpGet'K8s:记录 HTTP 探针“httpGet”的响应正文
【发布时间】:2021-08-12 22:06:32
【问题描述】:

kubectl describe pod 命令返回有关特定 pod 的信息。有一个名为 Events 的部分,其中包含与所选 pod 相关的事件。

如果准备就绪探测 (httpGet) 失败,将编写如下内容:

Message
------- 
Readiness probe failed: HTTP probe failed with statuscode: 503

但是,不清楚原因是什么,我想查看就绪探测的响应正文,因为在响应中我可以指定一条解释原因的消息。

是否可以将 http 探针的响应直接添加到 kubectl describe pod 的输出中,这样我就不必卷曲这个 pod?

据我了解,我可以将就绪探测设置为 exec,但我认为可能有更简单的解决方案。

httpGet 探针示例:

readinessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 5

【问题讨论】:

  • 你也可以分享 pod 的 YAML 吗?需要看看你是如何配置探针的。
  • @KamolHasan,是的,我分享了

标签: kubernetes


【解决方案1】:

要在healthz端点调试你程序的HTTP GET的响应,你可以port-forward你的pod到本地机器,并自己检查响应体。

  1. 首先,您需要增加初始延迟,以便您有足够的时间进行测试:
readinessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 1000 # something like this
  periodSeconds: 5
  1. 在您的 pod 运行后,使用 kubectl port-forward
$ kubectl port-forward -n <namespace> <pod-name> 8080:8080
  1. 现在使用curl 命令来测试响应:
$ curl -XGET "localhost:8080/healthz"

【讨论】:

  • 是否可以将http探针的响应直接添加到kubectl describe pod的输出中,这样我就不必卷曲这个pod了?
  • 不幸的是,你不能。使响应代码更有意义可能对您有所帮助。
猜你喜欢
  • 2020-03-21
  • 2021-08-15
  • 2017-12-18
  • 2011-05-16
  • 2016-10-17
  • 2023-01-13
  • 2013-10-13
  • 2019-03-14
  • 2020-09-13
相关资源
最近更新 更多