对于Pod的健康状态检测,kubernetes提供了两类探针(Probe)来实现对k8s中Pod的健康状态进行检测
什么是 Container Probes
通过k8s的架构图,我们可以发现,每个Node节点上都有 kubelet 这个组件,Container Probe(容器探针) 也就是容器的健康检查是由 kubelet 定期执行的。Container Probe有以下两种方式,分别为Liveness Probe(存活探针)和Readiness Probe(就绪探针)。
-
Liveness Probe(存活探针)
用于判断容器是否存活,即Pod是否为running状态,如果LivenessProbe探针探测到容器不健康,则kubelet将kill掉容器,并根据容器的重启策略决定是否重启,如果一个容器不包含LivenessProbe探针,则Kubelet认为容器的LivenessProbe探针的返回值永远成功。 -
Readiness Probe(就绪探针)
用于判断容器是否启动完成,即容器的Ready是否为True,可以接收请求,如果ReadinessProbe探测失败,则容器的Ready将为False,控制器将此Pod的Endpoint从对应的service的Endpoint列表中移除,从此不再将任何请求调度此Pod上,直到下次探测成功。
每类探针都支持三种探测方法
- ExecAction:在容器中