存活探针(Liveness Probe)、就绪探针(Readiness Probe)、启动探针(Startup Probe)的区别及适用场景?

提问者:Rae 问题分类:面试刷题
存活探针(Liveness Probe)、就绪探针(Readiness Probe)、启动探针(Startup Probe)的区别及适用场景?
3 个回答
空瓶在漂流
空瓶在漂流
启动探针(Startup Probe)
目的:延迟其他探针的启动,直到容器成功启动。
适用场景:
• 旧应用启动时间较长(如 Java 应用需数分钟初始化)。
• 避免存活/就绪探针在启动阶段误判导致容器重启。
配置示例:
startupProbe:
  httpGet:
    path: /startup
    port: 8080
  failureThreshold: 30  # 最长等待 30*5=150 秒
  periodSeconds: 5
发布于:4天前 IP属地:四川省
爱你的小笨蛋
爱你的小笨蛋
就绪探针(Readiness Probe)
目的:检测容器是否准备好接收流量,若失败则从 Service 的 Endpoints 中移除。
适用场景:
• 应用启动时需要加载大量数据(如缓存预热)。
• 依赖外部服务(如数据库)初始化完成后才可提供服务。
配置示例
readinessProbe:
  exec:
    command: ["/bin/check-db-connection.sh"]
  initialDelaySeconds: 10
  periodSeconds: 5
发布于:4天前 IP属地:四川省
深海少女心
深海少女心
存活探针(Liveness Probe)
目的:检测容器是否处于运行状态,若失败则重启容器。
适用场景:
• 应用程序因死锁或死循环无法响应请求时自动恢复。
• 例如:Web 服务长时间无响应需强制重启。
配置示例
livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10
发布于:4天前 IP属地:四川省
我来回答