文档

AHPA Controller

更新时间:

容器服务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的架构如下图所示:

image
  • 丰富的数据指标:支持CPU、Memory、QPS、RT和外部指标等。

  • 稳定性保障:AHPA的弹性逻辑基于主动预热、被动兜底的策略,并结合降级保护,保障资源的稳定。

    • 主动预测:基于历史指标通过达摩院机器学习算法提前预测出未来24小时应用的实例数量,适用于周期性的应用。

    • 被动预测:基于应用实时指标数据计算Pod数,便于应对突发的流量。

    • 降级保护:支持配置多个时间区间范围最大和最小实例。

  • 多种伸缩方式:AHPA支持伸缩方式包括Knative、HPA和Deployment。

    • Knative:解决Serverless应用场景下,基于并发数、QPS、RT的弹性冷启动问题。

    • HPA:简化HPA弹性策略配置,降低用户使用弹性的门槛,解决使用HPA面临的冷启动问题。

    • Deployment:直接使用Deployment,自动扩缩容。

使用说明

关于AHPA的使用说明,请参见AHPA概述

变更记录

2024年03月

版本号

变更时间

变更内容

变更影响

v2.5.6-aliyun.1

2024年03月20日

修复自定义指标panic问题。

建议在业务低峰期升级。

2023年12月

版本号

变更时间

变更内容

变更影响

v2.5.0-aliyun.1

2023年12月25日

  • 支持配置自定义PromQL。

  • 支持Elastic Workload。

  • kubectl展示优化:显示是否具有周期特征。

建议在业务低峰期升级。

2023年10月

版本号

变更时间

变更内容

变更影响

v2.4.0-aliyun.1

2023年10月16日

  • 被动预测支持多个指标。

  • 优化kubectl查询AHPA多指标展示。

  • 修复AHPA调整TargetRef对象不生效问题。

建议在业务低峰期升级。

2023年07月

版本号

变更时间

变更内容

变更影响

v2.3.0-aliyun.1

2023年07月12日

  • 支持自定义指标。

  • 优化kubectl打印输出:显示资源引用类型。

建议在业务低峰期升级。

2023年06月

版本号

变更时间

变更内容

变更影响

v2.2.0-aliyun.1

2023年06月19日

  • 支持Concurrency并发数指标预测。

  • 优化Knative被动处理逻辑。

  • 优化查询实时指标(CPU、Memory)毛刺剔除逻辑。

建议在业务低峰期升级。

2023年04月

版本号

变更时间

变更内容

变更影响

v2.1.0-aliyun.1

2023年04月26日

  • 支持Prometheus指标大盘。

  • 支持自定义历史指标时长。

建议在业务低峰期升级。

2022年07月

版本号

变更时间

变更内容

变更影响

v1.0.0-aliyun.1

2022年07月13日

  • 支持CPU、Memory、RT、QPS指标预测。

  • 支持Deployment、HPA、Knative等伸缩方式。

  • 本页导读 (1)
文档反馈