最近在工作中遇到了要部署k8s的存活探针和就绪探针,对此问题查询的资料在此总结一下:在 k8s 中,存活探针(LivenessProbe) 和 就绪探针(ReadinessProbe) 是保障应用高可用性和稳定性的核心机制。本文将从基础概念、配置方式、实战示例及最佳实践等方面,分享学习的总结。
一、探针的核心功能与区别
-
存活探针(LivenessProbe)
-
作用:检测容器是否正常运行。若探测失败,kubelet 会杀死容器并依据重启策略(如
Always
、OnFailure
)重启容器。 -
适用场景:处理死锁、僵死进程或应用崩溃等问题,确保容器故障时自动恢复。
-
-
就绪探针(ReadinessProbe)
-
作用:检测容器是否准备好接收流量。若探测失败,Pod 的 IP 会从 Service 的 Endpoints 中移除,避免流量转发到未就绪的实例。
-
适用场景:应用启动需初始化(如加载数据、连接数据库)或临时不可用(如依赖服务故障)。
-
-
关键区别