首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes -如何读取容器livenessProbe中的响应体?

Kubernetes -如何读取容器livenessProbe中的响应体?
EN

Stack Overflow用户
提问于 2021-10-14 18:39:46
回答 2查看 89关注 0票数 0

以下是livenessProbe的当前配置:

代码语言:javascript
复制
   livenessProbe:
        httpGet:
          path: /heartbeat
          port: 8000
        initialDelaySeconds: 2
        timeoutSeconds: 2
        periodSeconds: 8
        failureThreshold: 2

但是URL的响应正文显示status: "DOWN".well-known/heartbeat返回状态为200

因此,由于http响应状态200,Kubelet不会重新启动容器

如何确保Kubelet读取的是响应体,而不是http返回状态?使用livenessProbe配置

EN

回答 2

Stack Overflow用户

发布于 2021-10-14 18:52:20

如何确保Kubelet读取响应正文而不是http返回状态?使用livenessProbe配置

这不符合Kubernetes提供的“合同”。您可能需要实现一个遵循HTTP活动探测约定的自定义端点,如下所示。

来自Define a HTTP liveness probe

如果处理程序返回失败代码,kubelet将终止容器并重新启动它。任何大于或等于200且小于400的代码都表示成功。任何其他代码都表示失败。

票数 1
EN

Stack Overflow用户

发布于 2021-10-15 07:51:45

您可以使用shell命令解释探针中的主体,例如:

代码语言:javascript
复制
livenessProbe:
  exec:
    command:
    - sh
    - -c
    - curl -s localhost | grep 'status: "UP"'

如果为status: "DOWN",则grep返回非零值,这将导致readinessProbe失败。当然,您可以根据实际的响应正文来调整脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69575789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档