弹性伸缩是根据业务需求和策略,经济地自动调整弹性计算资源的管理方式。本文介绍弹性伸缩的背景信息和弹性伸缩的组件信息。
背景介绍
弹性伸缩是K8s上被广泛采用的功能,典型的场景包含在线业务弹性、定时周期性负载变化等。ACS目前支持HPA、CronHPA、AHPA、KEDA和AVPA弹性伸缩策略,通过感知应用负载或设定时间表,动态调整应用副本数或者应用的资源规格,以确保资源的高效利用和服务的稳定性。
弹性伸缩组件介绍
组件名称  | 组件介绍  | 适用场景  | 使用限制  | 参考文档  | 
HPA  | Kubernetes内置组件,主要面向在线业务。  | 在线业务  | 适用于Deployment、StatefulSet等实现了scale接口的对象。  | |
CronHPA  | 开源组件,主要面向应用资源使用率存在周期性变化的场景。  | 周期性负载业务  | 适用于Deployment、StatefulSet等,实现了scale接口的对象。此外CronHPA提供了HPA对象的兼容能力,您可以同时使用CronHPA与HPA。  | |
AHPA  | 开源组件,主要面向有明显周期性场景。例如直播、在线教育、游戏服务等。  | 周期性负载业务  | 适用于Deployment、StatefulSet等实现了scale接口的对象。此外,AHPA弹性预测需要至少七天的应用历史数据作为预测基础。  | |
KEDA  | 开源组件,适用于音视频离线转码、事件驱动作业、流式数据处理等场景。  | 事件驱动的负载业务  | 适用于Deployment、StatefulSet等实现了scale接口的对象。  | |
AVPA  | 应用市场组件, 主要面向不适合做水平弹性的有状态或者作业, 例如游戏服务,离线作业等,以及规格设置不合理需要动态调整的业务。  | 应用启动加速 短期负载变化业务  | 适用于任何工作负载。AVPA 适用于10分钟及以上的短期负载变化,且目前只支持调整CPU资源, 不适用于秒级的负载突发变化以及内存资源的调整。  |