背景
WHAT(做什么)
Advanced Horizontal Pod Autoscaler(简称:AHPA)是kubernetes中HPA的功能增强. 在兼容原生HPA功能基础上,增加预测、执行模式配置、缩容控制等功能。用户可以使用AdvancedHorizontalPodAutoscaler对支持scale功能的对象(例如Deployment等)进行弹性伸缩。
WHY(为什么做)
HPA在使用方面存在不便之处:
- 扩缩模式不灵活:创建HPA后,资源真实扩缩后方可验证可用性
- 扩缩控制存在一定风险,缩容按照目标态单次执行,易造成业务抖动
- 针对规律性强应用,无法进行特殊处理,比如提前备容,降低扩容效率低带来的风险
- 支持指标需要自定义扩展,需要一定开发成本
How(怎么做)
AHPA功能分为两部分:controller和algorithm。
- controller部分:HPA功能兼容、阈值触发和预测触发结果处理、扩缩模式功能、缩容控制功能等
- algorithm部分:提供一个基于STL + auto-arima的预测算法实现功能
- 整体架构如下: