K8s 存活(liveness)就绪(readiness)和启动(startup)探测器

Posted sjlinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s 存活(liveness)就绪(readiness)和启动(startup)探测器相关的知识,希望对你有一定的参考价值。

liveness probe(存活探测器):用于探测pod里的容器是否为正常提供服务,通俗说就是应用是否正常,如果应用运行状态不正常,则重启容器。

readiness probe(就绪探测器):用于探测pod里的容器是否准备好,通俗说就是应用是否准备好,只有pod上的所有容器都处于就绪状态,才会认定pod是准备好了,否则就会把它从service(endpoint)里移除,这样流量就不会被路由分到这个pod上了。

startup probe(启动探测器):有时候,会有一些现有的应用程序在启动时需要较多的初始化时间。为了避免产生存活或就绪探测死锁,可以通过设置启动探测来解决,针对HTTP或TCP检测,可以通过设置failureThreshold * periodSeconds 参数来保证有足够长的时间应对糟糕情况下的启动时间。

startup probe探测成功前其他探测会被禁掉,一旦startup probe成功一次,就不再使用,liveness probe就会接管对容器的探测。

failureThreshold:失败探测次数;

periodSeconds:每次探测的间隔;

initialDelaySeconds:容器初始化时间,在该时间后才会进行探测。

三种探测区别:

liveness probe和startup probe探测失败会使容器重启。

readiness probe:探测失败容器不会重启,但是会从服务列表中(service对应的endpoint)将该pod信息剔除

以上是关于K8s 存活(liveness)就绪(readiness)和启动(startup)探测器的主要内容,如果未能解决你的问题,请参考以下文章

应用健康Liveness和Readness

再战 k8s:Pod 生命周期与重启策略

开发和运维对K8S中的应用都做了啥?

k8s六Pod生命周期

k8s六Pod生命周期

k8s实践liveness与readiness 2种探针使用