1. Kubernetes健康检查探针深度解析
在容器编排领域,Kubernetes的健康检查机制是保障业务连续性的基石。作为一线运维人员,我见过太多因探针配置不当导致的"假死"案例——容器进程活着但服务已不可用。本文将结合生产实践,拆解三种探针的运作原理与配置要诀。
健康检查的本质是定时对容器进行"体检"。没有它,就像让病人自己报告健康状况,当病人昏迷时系统仍认为一切正常。Kubernetes通过三种探针形成立体监控:
- 存活探针(livenessProbe):相当于"心跳检测",失败触发重启
- 就绪探针(readinessProbe):相当于"服务能力评估",失败摘除流量
- 启动探针(startupProbe):相当于"启动保护期",避免误杀初始化中的容器
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 探针类型与适用场景
2.1 存活探针:业务的最后防线
当我们的电商应用出现死锁时,虽然Java进程仍在,但已无法响应请求。这时存活探针的HTTP检测到503错误,Kubelet会在3次重试失败后重启容器(默认failureThreshold=3)。典型配置:
yaml复制livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30 # 给Spring Boot应用留足启动时间
periodSeconds: 10
关键经验:对JVM应用,initialDelaySeconds建议大于30秒,避免触发启动期间的GC停顿导致误重启
2.2 就绪探针:流量控制的智能开关
当我们的订单服务需要10秒加载库存缓存时,就绪探针通过检查/tmp/healthy文件是否存在来控制流量:
yaml复制readinessProbe:
exec:
command:
- sh
- -c
- test -f /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
避坑指南:避免就绪与存活检查使用相同端点,否则可能因健康检查压力导致级联故障
2.3 启动探针:慢启动应用的保护伞
对于需要连接数据库并初始
