首页/开发/CI/CD 与发布速查/preStop 钩子与摘流延迟
发布策略60 条

preStop 钩子与摘流延迟

preStop 在容器收到终止信号前同步执行:常用于等待负载均衡完成摘流、通知对端下线、留出请求处理时间,让滚动发布中的实例平滑退出。

CI/CD 与发布速查开发更新于 2026-10-12
执行时机Pod 终止流程开始、SIGTERM 之前
类型exec / httpGet,同步执行
计时占用 terminationGracePeriodSeconds 额度
常用模式sleep 让 LB 完成摘流

preStop 示例

preStop 示例
lifecycle:
  preStop:
    exec:
      command: ["sh", "-c", "sleep 5"]
sleep 时长按「LB 摘流感知时间 + 连接排空时间」估算;不同 LB 实现感知延迟不同。

易错点

  • preStop 时长超出宽限期:钩子被中断,进程被 SIGKILL,连接硬断
  • 只加 preStop 不改应用:应用忽略 SIGTERM,存量请求仍然失败

数据来源与参考

  • Kubernetes 文档《Container Lifecycle Hooks》
  • Kubernetes 文档《Pod Lifecycle》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌