Pod通过两类探针检查容器的健康状态:
-
(1) LivenessProbe(存活探针)探针:
用于判断容器是否健康,告诉Kubelet一个容器什么时候处于不健康的状态。如果LivenessProbe探针探测到容器不健康,则Kubelet 将删除该容器,并根据容器的重启策略做相应的处理。 -
(2)ReadinessProbe(就绪探针)探针:
用于判断容器是否启动完成且准备接收请求。如果ReadinessProbe探针探测到失败,则Pod的状态将被修改。
Kubelet定期调用容器中的LivenessProbe探针来诊断容器的健康状况。LivenessProbe包含如下三种实现方式:
ExecAction:在容器内部执行一个命令,如果该命令的退出状态码为 0,则表明容器健康;
TCPSocketAction:通过容器的IP地址和端口号执行TCP检查,如果端口能被访问,则表明容器健康;
HTTPGetAction:通过容器的IP地址和端口号及路径调用HTTP GET方法,如果响应的状态码大于等于200且小于400,则认为容器状态健康。
LivenessProbe和ReadinessProbe探针包含在Pod定义的某个主容器中。