EAS服务的重启或部分参数更新会触发滚动更新。这是一种逐步替换旧副本为新副本的发布策略,可在不停机、保障系统高可用的前提下完成版本升级。
滚动更新
更新过程中,系统依据配置参数创建新副本并逐步替换旧副本。若新副本启动失败,更新将中止,失败副本不接收流量,剩余旧副本继续提供服务,业务不受影响。用户可选择回滚或重新发起更新,且新更新会优先清理此前未完成的失败版本副本。
滚动更新行为由以下两个关键参数控制:
超过期望的副本数(JSON参数:rolling_strategy.max_surge)
描述:更新时最多可额外创建的副本数,支持正整数或百分比。值越大,更新越快。
例如:100个副本,配置为20,则更新开始即创建20个新副本。
默认值:副本总数的2%(不足1时取1)。
重要超过期望的副本数过大时,大量新副本上线后会立即替换等量旧副本,若新副本未预热,突增流量可能冲击服务稳定性。
最大不可用副本数(JSON参数:rolling_strategy.max_unavailable)
描述:更新过程中允许的最大不可用副本数,用于释放资源,防止因资源不足导致更新过程被阻碍。
例如:设为N,更新开始时立即停止N个旧副本。
默认值:
专属资源组:2025年9月1日前创建的服务,默认为1。2025年9月1日后创建的服务,弹性资源池开启默认为0,未开启默认为1。
公共资源组:0。
灵骏智算Quota:2025年9月1日前创建的服务,默认为0。2025年9月1日后创建的服务,默认为副本数的2%(不足1时取1)。
重要单副本服务若将最大不可用副本数设为1,滚动更新时旧副本会在新副本启动前退出,期间服务无可用副本,将短暂不可用。
最大不可用副本数过大可能导致过多副本同时下线,剩余副本不足以承载流量,影响服务可用性。
优雅退出
优雅退出的参数会影响滚动更新中副本退出的稳定性。
优雅退出时间 (JSON参数:eas.termination_grace_period)
描述:副本优雅退出等待时间,单位秒。副本进入Terminating状态后,流量被摘除,系统等待30秒让其处理完已接收请求后再下线。若请求处理时间较长,建议调大该值。
默认值:30。
重要如果将该参数值调小则会影响服务稳定性,将该参数配置过大则会导致服务更新速度过慢,如果无特别需求请不要配置该参数。
是否发送SIGTERM(JSON参数:rpc.enable_sigterm)
描述:SIGTERM是终止进程的信号。JSON参数取值true、false。
false:副本退出时不会发送SIGTERM信号。
true:副本退出时,系统立即发送SIGTERM信号,服务主进程需在信号处理函数中实现自定义优雅退出逻辑,否则可能直接终止,导致优雅退出失败。
默认值:不发送(false)。
默认不发送SIGTERM信号。因为业务容器默认不会对SIGTERM做拦截处理,如果收到SIGTERM信号,业务进程会立即退出,从而导致优雅退出过程失效,业务受损。
请求耗时差异大的服务,建议启用SIGTERM。比如请求处理时间最短几秒,最长可能30分钟,固定优雅退出时间为30分钟会拖慢服务更新。此时需业务容器配合在收到SIGTERM信号后,处理完存量请求后就主动退出,实现更灵活的退出控制。
异步推理服务无需主动开启SIGTERM。EAS管控层在副本退出时,会自动响应SIGTERM信号,停止订阅新请求,并等待已有请求处理完成后再退出副本。