k8s中探针与钩子
用通俗语言表达
探针
startupProbe: 解决慢启动问题,在startupProbe 成功之前,不会执行livenessProbe和readinessProbe
livenessProbe: 服务存活检查
readinessProbe: 服务就绪检查
---
钩子
postStart: 和Init container 作用类似,但是在容器 被创建之后立即异步执行。不保证在主进程(如 command)启动之前完成!
即:postStart 和主应用是并发执行的,可能主程序已经运行了,postStart 还没结束。
-
- 发送通知(如 webhook)
- 初始化临时文件或目录
- 动态注册服务(如写入 Consul)
- 等待依赖(但更推荐用 Init Container)
preStop: 服务优雅下线,
触发时机
-
- 在容器 收到终止信号(SIGTERM)之前同步执行。
- kubelet 会 等待
preStop执行完成,然后再发送 SIGTERM 给主进程。 - 是实现 优雅停机(Graceful Shutdown) 的关键机制。
🎯 典型用途
- 关闭长连接(如 WebSocket)
- 从服务注册中心注销(如 Eureka、Consul)
- 等待正在处理的请求完成
- 清理临时资源(如删除锁文件)
- lifecycle: preStop: exec: command: ["/usr/sbin/nginx", "-s", "quit"]
Init Containers: 初始化容器
浙公网安备 33010602011771号