Kubernetes的liveness-probe返回false时会发生什么?会立即重启Pod吗?
Kubernetes
livenessProbe 检测失败后的处理逻辑 首先明确:不会在第一次检测失败后立即重启Pod
存活探针检测返回失败后,Kubelet 会先遵循探针配置的阈值规则进行多次重试,只有连续失败次数达到设定阈值才会触发后续操作:
- 探针默认配置下,需要连续3次(对应
failureThreshold默认值)检测失败才会判定容器不健康,两次检测的默认间隔为10秒(对应periodSeconds默认值),也就是说默认场景下第一次检测失败后,最快也要20秒后才会触发后续处理。
达到失败阈值后触发的操作
当连续失败次数满足failureThreshold设定值后,Kubelet 会按以下流程执行:
- 向不健康的容器发送 SIGTERM 信号,等待容器优雅终止,等待时长由 Pod 的
terminationGracePeriodSeconds配置决定(默认30秒) - 若容器在优雅终止窗口期内未正常退出,Kubelet 会发送 SIGKILL 信号强制杀死容器
- 最后根据 Pod 配置的
restartPolicy(重启策略)处理:- 若重启策略为
Always/OnFailure:触发容器重建,Pod 保持运行状态,重启计数+1 - 若重启策略为
Never:容器不会被重启,Pod 状态会被标记为Failed
- 若重启策略为
- 所有探针失败、容器重启的事件都会同步到 Kubernetes 事件系统,可执行
kubectl describe pod <Pod名称>命令查看具体的失败原因和重启记录。
内容的提问来源于stack exchange,提问作者J.J. Beam
相关产品推荐
相关产品推荐

