弹性伸缩概述

弹性伸缩是根据业务需求和策略,经济地自动调整弹性计算资源的管理方式。本文介绍弹性伸缩的背景信息和弹性伸缩的组件信息。

背景介绍

弹性伸缩是K8s上被广泛采用的功能,典型的场景包含在线业务弹性、定时周期性负载变化等。ACS目前支持HPA、CronHPA、AHPA、KEDAAVPA弹性伸缩策略,通过感知应用负载或设定时间表,动态调整应用副本数或者应用的资源规格,以确保资源的高效利用和服务的稳定性。

弹性伸缩组件介绍

组件名称

组件介绍

适用场景

使用限制

参考文档

HPA

Kubernetes内置组件,主要面向在线业务。

在线业务

适用于Deployment、StatefulSet等实现了scale接口的对象。

容器水平伸缩(HPA)

CronHPA

开源组件,主要面向应用资源使用率存在周期性变化的场景。

周期性负载业务

适用于Deployment、StatefulSet等,实现了scale接口的对象。此外CronHPA提供了HPA对象的兼容能力,您可以同时使用CronHPAHPA。

容器定时伸缩(CronHPA)

AHPA

开源组件,主要面向有明显周期性场景。例如直播、在线教育、游戏服务等。

周期性负载业务

适用于Deployment、StatefulSet等实现了scale接口的对象。此外,AHPA弹性预测需要至少七天的应用历史数据作为预测基础。

弹性预测伸缩(AHPA)

KEDA

开源组件,适用于音视频离线转码、事件驱动作业、流式数据处理等场景。

事件驱动的负载业务

适用于Deployment、StatefulSet等实现了scale接口的对象。

事件驱动伸缩(KEDA)

AVPA

应用市场组件, 主要面向不适合做水平弹性的有状态或者作业, 例如游戏服务,离线作业等,以及规格设置不合理需要动态调整的业务。

应用启动加速

短期负载变化业务

适用于任何工作负载。AVPA 适用于10分钟及以上的短期负载变化,且目前只支持调整CPU资源, 不适用于秒级的负载突发变化以及内存资源的调整。

容器垂直伸缩(AVPA)