知识卡片
liveness探针与readiness探针的语义差异
内容
liveness 判断进程是否还活着,失败通常意味着该重启;readiness 判断实例是否已能接流量,失败只应临时摘除流量。进程可以活着但没准备好,例如数据库迁移或依赖连接未完成;把两者混用会导致不必要重启或过早接流量。
参考来源
- 位置:《Quarkus实战:专为Kubernetes而优化的Java解决方案》第10章《与Kubernetes集成》(源文件:_epub-src/OEBPS/Text/chapter100.xhtml)
- 结论依据:原文分别定义 liveness 与 readiness 的返回语义,并举出数据库迁移时服务已启动但尚不能处理请求的例子,支撑二者不能混用的结论。
- 原始内容:readiness探针不同,因为liveness只是意味着服务已经启动,但可能还不能处理任何请求(例如,因为它正在进行数据库迁移)。