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



下面是liveessprobe的当前配置:

livenessProbe:
httpGet:
path: /heartbeat
port: 8000
initialDelaySeconds: 2
timeoutSeconds: 2
periodSeconds: 8
failureThreshold: 2

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

所以,Kubelet不会重新启动容器,因为http响应状态为200


如何确保Kubelet读取响应体而不是http返回状态?usinglivenessProbeconfiguration

您可以使用shell命令在探针中解释body,例如:

livenessProbe:
exec:
command:
- sh
- -c
- curl -s localhost | grep 'status: "UP"'

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

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

这不是根据"合同"。由Kubernetes提供。您可能需要实现一个自定义端点,该端点遵循HTTP活动探测的契约,如下所示。

From Define a HTTP live probe

如果处理程序返回一个失败代码,kubelet将终止容器并重新启动它。

大于等于200且小于400表示成功。任何其他代码表示失败。

相关内容

  • 没有找到相关文章

最新更新