K8s中Pod健康检查源代码分析( 三 )

----K8s中Pod健康检查源代码分析//---- http://

摘要: 本文基于k8s 1.11.0版本的从源代码的角度分析了Pod的健康检查实现逻辑 。 建议通过k8s部署生产环境应用时 , 请务必设置上liveness和readiness 这是保障服务稳定性的最佳实践 。

了解k8s中的Liveness和Readiness

Liveness: 
表明是否容器正在运行 。 如果liveness探测为fail , 则kubelet会kill掉容器 , 并且会触发restart设置的策略 。 默认不设置的情况下 , 该状态为success.
Readiness: 
表明容器是否可以接受服务请求 。 如果readiness探测失败 , 则endpoints控制器会从endpoints中摘除该Pod IP 。 在初始化延迟探测时间之前 , 默认是Failure 。 如果没有设置readiness探测 , 该状态为success 。

代码分析

基于Kubernetes 1.11.0

1.启动探测

在kubelet启动是时候会启动健康检查的探测:

推荐阅读