知识卡片

liveness探针与readiness探针的语义差异

专业/工作 · 32

内容

liveness 判断进程是否还活着,失败通常意味着该重启;readiness 判断实例是否已能接流量,失败只应临时摘除流量。进程可以活着但没准备好,例如数据库迁移或依赖连接未完成;把两者混用会导致不必要重启或过早接流量。

参考来源

- 位置:《Quarkus实战:专为Kubernetes而优化的Java解决方案》第10章《与Kubernetes集成》(源文件:_epub-src/OEBPS/Text/chapter100.xhtml) - 结论依据:原文分别定义 liveness 与 readiness 的返回语义,并举出数据库迁移时服务已启动但尚不能处理请求的例子,支撑二者不能混用的结论。 - 原始内容:readiness探针不同,因为liveness只是意味着服务已经启动,但可能还不能处理任何请求(例如,因为它正在进行数据库迁移)。