You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用K8s蓝绿部署时,旧容器的最后请求会被中断吗?

K8s蓝绿部署中旧容器的最后请求是否会被中断?

不一定会中断,核心取决于你对K8s终止流程的配置和应用自身的优雅退出逻辑。

具体来说:

  • K8s删除旧版本Pod时,会先把该Pod从关联Service的端点列表中移除,确保新请求不会再路由到旧容器。之后才会向Pod发送TERM信号,并启动终止宽限期倒计时(默认30秒,可通过Pod的terminationGracePeriodSeconds字段自定义)。
  • 如果你的应用能正确捕获TERM信号,收到信号后立刻停止接收新请求,优先处理完正在进行的请求再退出,那最后一个请求就能正常完成,不会被中断。
  • 要是应用没处理TERM信号,或者终止宽限期设置得太短,K8s在等待超时后会发送KILL信号强制终止容器,这时候正在处理的请求就会被直接中断。

另外蓝绿部署本身的特性也能帮你规避这个问题:Service后端从旧版本切换到新版本是瞬间完成的,但旧版本的Pod不会自动立刻被删除——你可以手动控制删除时机,比如等旧Pod的监控显示没有活跃请求后再删除,这样完全能避免最后一个请求被中断。

总结下来,只要做好应用优雅退出的实现、合理配置终止宽限期,再配合蓝绿部署中旧Pod的延迟删除策略,就能避免最后请求被中断的情况。

内容的提问来源于stack exchange,提问作者Simon Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:40:29