Liveness Probe(存活探针):用于判断容器是否存货(running状态),如果LivenessProbe探测到容器不健康,则kubelet将杀掉该容器,并根据容器的重启策略做相应的处理。如果一个容器不包含LivenessProbe,那么kubelet认为该容器的LivenessProbe返回的值永远是“Success”。
Readiness Probe(就绪探针):用户判断容器是否启动完成(Ready状态),可以接受请求。如果Readiness测到失败,则Pod的状态将被修改,Endpoint Controller将从Service的Endpoint中删除包含该容器所在Pod的Endpoint(将会被从service的load balancer中移除)。
LivenessProbe和ReadinessProbe有以下三种实现方式:
- ExecAction在容器内部执行一个命令,如果该命令返回码为0,则表示容器健康。
- TCPSocketAction 通过容器的IP地址和端口执行TCP检查,如果能够建立TCP连接,则表示容器健康。
- HTTPGetAction 通过容器的IP地址、端口号和路径调用HTTP Get方法,如果响应的状态码在200-400之间,则表示容器健康。
参考文档:
https://www.kubernetes.org.cn/2362.html
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/