负载变动频繁时,Knative可能会因为响应负载变动而导 致频繁创建或销毁Pod实例
为避免服务规模“抖动” ,AutoScaler支持两种扩缩容模 式
Stable稳定模式
在稳定模式中,KPA会在默认的稳定窗口期(默认为60秒)内计算Pod的平均并发数。根据这个平均并发数,KPA会调整Pod的数量,以保持稳定的负载水平。请求平均数(平均并发数)及每个Pod的目标并发数计算
Pod数
Panic恐慌模式
短期内收到大量请求时,将启用Panic模式 ,十分之一窗口期(6秒)的平均并发数 ≥ 2*单实例目标并发 数
进入Panic模式60秒后,系统会重新返回Stable模式
在恐慌模式中,KPA会在恐慌窗口期(默认为6秒)内计算Pod的平均并发数。恐慌窗口期=稳定窗口期*panic-window-percentage(panic-window-percentage取值是0~1,默认是0.1)。当请求突然增加导致当前Pod的使用率超过恐慌窗口百分比时,KPA会快速增加Pod的数量以满足负载需求。
在KPA中,弹性生效的判断是基于恐慌模式下计算得出的Pod数量是否超过恐慌阈值(PanicThreshold)。恐慌阈值=panic-threshold-percentage/100,panic-threshold-percentage默认为200,即恐慌阈值默认为2。
kubectl edit cm config-autoscaler -n knative-serving
stable-window: 60s
panic-threshold-percentage: "10"
panic-window-percentage: "10"
panic-threshold-percentage
配置项表示Panic模式的并发阈值百分比。默认为10,表示当窗口期内的平均并发数达到目标并发数的10%时触发Panic模式。panic-window-percentage
配置项表示Panic模式的窗口期百分比。默认为10,表示Panic模式的窗口期为目标窗口期的10%。