【Azure Container App】Container Apps 设置延迟删除 (terminationGracePeriodSeconds) 的解释
问题描述
创建Container App时,可以设置终结一个App的副本的方式,通过设置 Termination grace period值【Time given to a replica after it is sent SIGTERM before it is terminated. (Default: 30 seconds)】来优雅的关闭应用。
只是,在通过观察副本的启用和关闭日志,有时候发现当最后一个请求处理完成后,或者没有处理完成的情况下,副本依旧存在关闭的情况。 Termination grace period的设置并没有完全的遵守。
问题解答
terminationGracePeriodSeconds : [Termination grace period]: 这个参数的定义是从pod收到terminated signal到最终shutdown的最大时间,这段时间是给pod中的application 缓冲时间用来处理链接关闭,应用清理缓存。
terminationGracePeriodSeconds
设置最大值600 秒(10 分钟)。如果应用程序需要超过 10 分钟或更长时间来清理逻辑,这可能会带来挑战,特别是当应用程序扩展到许多副本(甚至只是几个副本)时。强烈建议围绕清理逻辑重新审视应用程序设计,以减少这种情况:此外,由于 Pod(以及其中的容器)仍然存在,如果许多 Pod 一次等待终止几分钟 - 并且创建了新的 Pod/副本,这可能会开始出现资源争用问题 - 取决于有多少 Pod资源已经存在于环境中
下面概述了 Pod 生命周期中的情况 - “关闭应用程序的窗口”是用户在
terminationGracePeriodSeconds
中定义的数字 - 并在发送SIGKILL
之前显示用于清理逻辑的窗口:
参考资料
容器应用程序的优雅终止 :
https://azureossd.github.io/2024/05/27/Graceful-termination-on-Container-Apps/ 或 https://www.cnblogs.com/lulight/articles/18553596
【END】
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-11-18 【Azure 环境】向Azure Key Vault中导入证书有输入密码,那么导出pfx证书的时候,为什么没有密码呢?
2021-11-18 【Azure 事件中心】在Windows系统中使用 kafka-consumer-groups.bat 查看Event Hub中kafka的consumer groups信息
2020-11-18 【Azure Redis 缓存 Azure Cache For Redis】Redis支持的版本及不同版本迁移风险