容器服务ACK支持AHPA(Advanced Horizontal Pod Autoscaler)的弹性能力,满足在应用具备周期性的情况下,通过弹性预测进行资源预热,解决您在服务使用中遇到的弹性滞后问题。您可以通过安装AHPA Controller使用AHPA弹性预测能力。本文介绍AHPA的组件信息、使用说明和变更记录。
组件介绍
AHPA基于应用历史指标预测未来Pod实例数量,帮助您解决弹性滞后的问题。AHPA通过主动预测和被动预测相结合,实时调整资源实例数,并且增加了兜底保护策略,通过设置时间区间的实例数上下界值,实现弹性兜底。
工作原理
弹性伸缩可以帮助用户节省成本,提高业务的整体稳定性、免运维能力和核心竞争力。AHPA架构设计的基本原则如下:
稳定性:在用户服务稳定的情况下进行弹性伸缩。
免运维:不增加额外的运维负担。AHPA不需要在用户侧增加新的Controller,且Autoscaler的配置语义比HPA更清晰。
面向Serverless:提供以用户应用为中心、面向应用Pod维度的设计,不考虑K8s节点的利用率情况。假设用户使用的都是ECI Pod,考虑在Serverless场景(没有节点)下的弹性最佳实践,增强ACK Serverless运行LongRun的能力。
AHPA的架构如下图所示:
丰富的数据指标:支持CPU、Memory、QPS、RT和外部指标等。
稳定性保障:AHPA的弹性逻辑基于主动预热、被动兜底的策略,并结合降级保护,保障资源的稳定。
主动预测:基于历史指标通过达摩院机器学习算法提前预测出未来24小时应用的实例数量,适用于周期性的应用。
被动预测:基于应用实时指标数据计算Pod数,便于应对突发的流量。
降级保护:支持配置多个时间区间范围最大和最小实例。
多种伸缩方式:AHPA支持伸缩方式包括Knative、HPA和Deployment。
Knative:解决Serverless应用场景下,基于并发数、QPS、RT的弹性冷启动问题。
HPA:简化HPA弹性策略配置,降低用户使用弹性的门槛,解决使用HPA面临的冷启动问题。
Deployment:直接使用Deployment,自动扩缩容。
使用说明
关于AHPA的使用说明,请参见AHPA概述。
变更记录
2024年04月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.6.0-aliyun.1 | 2024年04月16日 | 优化通过metrics-server采集指标的链路。 | 建议在业务低峰期升级。 |
2024年03月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.5.6-aliyun.1 | 2024年03月20日 | 修复自定义指标panic问题。 | 建议在业务低峰期升级。 |
2023年12月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.5.0-aliyun.1 | 2023年12月25日 |
| 建议在业务低峰期升级。 |
2023年10月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.4.0-aliyun.1 | 2023年10月16日 |
| 建议在业务低峰期升级。 |
2023年07月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.3.0-aliyun.1 | 2023年07月12日 |
| 建议在业务低峰期升级。 |
2023年06月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.2.0-aliyun.1 | 2023年06月19日 |
| 建议在业务低峰期升级。 |
2023年04月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v2.1.0-aliyun.1 | 2023年04月26日 |
| 建议在业务低峰期升级。 |
2022年07月
版本号 | 变更时间 | 变更内容 | 变更影响 |
v1.0.0-aliyun.1 | 2022年07月13日 |
| 无 |