首页/云/Kubernetes 速查/优雅终止与 terminationGracePeriodSeconds

优雅终止与 terminationGracePeriodSeconds

删除 Pod 的标准流程:标记 Terminating → 摘除端点 → 发 SIGTERM → 等待宽限期 → SIGKILL;preStop 钩子可在信号前执行收尾。

Kubernetes 速查云更新于 2026-10-12

配置示例

配置示例
spec:
  terminationGracePeriodSeconds: 60
  containers:
    - name: app
      lifecycle:
        preStop:
          exec:
            command: ["sh", "-c", "sleep 5"]   # 等负载均衡摘除后再开始退出

观察终止过程

观察终止过程
kubectl delete pod web-x --wait=false
kubectl get pod web-x -w
kubectl describe pod web-x | grep -i -A3 'graceful'
宽限期默认 30 秒;超过未退出 kubelet 发 SIGKILL。preStop 执行时间也计入宽限期。

易错点

  • 应用不处理 SIGTERM 时会被 SIGKILL 强杀,务必在代码里注册信号处理并完成连接排空
  • preStop 的 sleep 是常见「等 Endpoints 摘除」技巧,但时间要小于宽限期,否则直接被 kill

数据来源与参考

  • Kubernetes 官方文档 · Pod Lifecycle(Termination)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌