标准答案

  1. 终止流程通常包括停止接收新流量、处理在途请求、关闭消费者和释放资源,应用必须正确接收信号。
  2. 宽限期过短会强杀并丢失工作,过长会拖慢发布、驱逐和故障恢复。
  3. preStop、Service 摘流、readiness 变化和应用 shutdown deadline 要一起验证,不能只调一个秒数。
  4. 测试长请求、消息处理、连接关闭和第二次终止信号,确保超时后仍能完成可预测恢复。

题目解析

terminationGracePeriodSeconds 是 Pod 终止流程给容器的时间预算,通常包含 preStop、应用收到 SIGTERM、停止接新请求、排空在途工作和资源关闭;到期后可能 SIGKILL。Service 摘流、EndpointSlice 更新和连接关闭存在传播延迟,不能只调一个秒数。

宽限期应基于最长业务请求、消息处理、事务提交和连接释放的实测时间,并小于发布和故障恢复可接受窗口。应用需要有自己的 shutdown deadline,超过时安全取消、重试或恢复;测试要覆盖长请求、消息中断、第二次信号和节点驱逐。

常见误区

  • 误区:只把宽限期设得很大。改正:测量排空路径,协调 preStop、readiness、应用 deadline 和平台预算。
  • 误区:没有在应用中处理 SIGTERM。改正:实现停止接新工作、释放资源和可恢复未完成任务的流程。

作者信息