以下是livenessProbe的当前配置:
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配置
发布于 2021-10-14 18:52:20
如何确保Kubelet读取响应正文而不是http返回状态?使用livenessProbe配置
这不符合Kubernetes提供的“合同”。您可能需要实现一个遵循HTTP活动探测约定的自定义端点,如下所示。
来自Define a HTTP liveness probe
如果处理程序返回失败代码,kubelet将终止容器并重新启动它。任何大于或等于200且小于400的代码都表示成功。任何其他代码都表示失败。
发布于 2021-10-15 07:51:45
您可以使用shell命令解释探针中的主体,例如:
livenessProbe:
exec:
command:
- sh
- -c
- curl -s localhost | grep 'status: "UP"'如果为status: "DOWN",则grep返回非零值,这将导致readinessProbe失败。当然,您可以根据实际的响应正文来调整脚本。
https://stackoverflow.com/questions/69575789
复制相似问题