首页/云/云与容器速查/优雅终止与 preStop
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条容器与 Docker106 条
Kubernetes68 条
容器排障33 条

优雅终止与 preStop

删除 Pod 时并行发生两件事:从 Endpoints 摘除与发送 SIGTERM,然后等 terminationGracePeriodSeconds(默认 30s)再 SIGKILL。应用要处理 SIGTERM 并在宽限期内退出。

云与容器速查云更新于 2026-10-12
流程摘除端点 → SIGTERM → 等待宽限期 → SIGKILL
宽限期terminationGracePeriodSeconds,默认 30s
preStop先执行钩子(如 sleep 5 等在途请求走完)再 SIGTERM
要点应用需处理 SIGTERM;长连接/任务要自查是否可中断
验证滚动更新时观察连接是否被重置

preStop 示例

preStop 示例
containers:
  - name: web
    image: registry.example.com/team/web:1.2.3
    lifecycle:
      preStop:
        exec:
          command: ["sh", "-c", "sleep 5"]
    # 容器内确保优雅退出
preStop 里 sleep 是对『摘除端点有延迟』的经验补偿:让负载均衡先把本实例摘掉,再开始真正停机。

易错点

  • 应用不处理 SIGTERM:等满 30 秒被 SIGKILL,请求被硬断
  • 宽限期设 0/极短:滚动更新期间用户请求 502 刷屏

数据来源与参考

  • Kubernetes Docs:Pod Lifecycle(Termination)
  • Kubernetes Docs:Container Lifecycle Hooks

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌