AHPA 弹性预测最佳实践

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在云原生场景下,资源容量往往难以预估,而使用 K8s 原生的 HPA,往往要面对弹性滞后以及配置复杂问题。阿里云容器服务与达摩院决策智能时序团队合作推出的 AHPA(Advanced Horizontal Pod Autoscaler)弹性预测,可以根据业务历史指标,自动识别弹性周期并对容量进行预测,帮你提前进行弹性规划,解决弹性滞后的问题。 AHPA 如何配置才能解锁最佳使用姿势?本文给你带来 AHPA 弹性预测最佳实践

在云原生场景下,资源容量往往难以预估,而使用 K8s 原生的 HPA,往往要面对弹性滞后以及配置复杂问题。阿里云容器服务与达摩院决策智能时序团队合作推出的 AHPA(Advanced Horizontal Pod Autoscaler)弹性预测,可以根据业务历史指标,自动识别弹性周期并对容量进行预测,帮你提前进行弹性规划,解决弹性滞后的问题。 AHPA 如何配置才能解锁最佳使用姿势?本文给你带来  AHPA 弹性预测最佳实践。接下来将从如下方面展开介绍:

  • AHPA 弹性预测介绍
  • 指标源及AHPA配置参数介绍
  • 边界保护的适用情况
  • 利用降噪、算法分位数可以做哪些事情
  • 典型场景:从 HPA 转 AHPA
  • 典型场景:弹性推荐

AHPA 弹性预测介绍

为什么要做弹性预测,首先当前应用存在冷启动的问题,我们可以看一下应用启动阶段包括资源调度、拉镜像、容器创建、容器启动以及应用启动。冷启动除了要解决 IaaS 资源的分配、Kubernetes 的调度、拉镜像等问题以外还涉及到应用的启动时长。应用启动时长从毫秒到分钟级别都有。应用启动时间这完全是业务行为,在底层平台层面几乎无法控制。

此外当前通用的弹性方案面临如下问题,可用性差,无法预估容量,少了不够,多了浪费。稳定性风险弹性之后,配置固化,易用性差,配置繁琐,如定时的CronHPA, 需要评估每个时间段扩容多少,缩容多少,并且随着业务的变化需要随时进行调整。

image.png

我们思考弹性核心要解的问题:在提升资源使用率的同时,保障业务的稳定性。

那么我们如果能够根据历史数据,通过机器学习算法,提前预测未来需要多少资源,那么就可以避免上述的问题。围绕这个思路,我们需要做哪些事情呢?

首先要有历史指标数据,数据是预测的前提,然后需要预测算法,通过算法提前预测未来的需要多少资源,最后生效在工作负载上。我把他归纳为弹性预测三元组。当然我们目标是:资源提前预热、自动弹性规划、同时能够支持弹性降级,保证稳定性。

方案实现如下:

  • 丰富的数据指标:支持包括CPU、Memory、QPS、RT以及外部指标等
  • 稳定性保障:AHPA的弹性逻辑基于主动预热、被动兜底的策略,并结合降级保护,保证了资源稳定。
  • 主动预测:根据历史预测出未来一段时间的趋势结果,适用于周期性的应用。
  • 被动预测:实时预测。针对突发流量场景,通过被动预测实时准备资源。
  • 降级保护:支持配置多个时间区间范围最大、最小实例。
  • 多种伸缩方式:AHPA支持伸缩方式包括Knative、HPA以及 Deployment:
  • Knative:解决 Serverless 应用场景下,基于并发数/QPS/RT 弹性冷启动的问题
  • HPA:简化 HPA 弹性策略配置,降低用户使用弹性的门槛,解决使用 HPA 面临的冷启动的问题
  • Deployment:直接使用Deployment,自动扩缩容

优势体现:

通过AHPA我们可以做到毫秒级预测、秒级弹性,对于复杂周期识别率到达95%以上,同时支持鲁棒性以及分钟级别边界保护配置。

AHPA 最佳实践配置

指标源配置

首先介绍指标源配置,这里我们通过ConfigMap配置相应的指标源,具体如下

apiVersion: v1
kind: ConfigMap
metadata:
  name: application-intelligence
  namespace: kube-system
data:
  armsUrl: https://cn-beijing.arms.aliyuncs.com:9443/api/v1/prometheus/xxx/1581204543170042/xxx/cn-beijing
  token: xxxx
  realtimesource: metric-server

参数说明:

参数

说明

推荐配置

armsUrl

历史指标配置:Promethues 数据源Url

必选

token

Promethues 数据源Token

建议配置

realtimesource

实时指标配置。支持metric-servervk

必选。在使用ASK时,可以直接使用VK

AdvancedHorizontalPodAutoscaler 配置

在 AHPA 中我们通过 AdvancedHorizontalPodAutoscaler 配置弹性策略、目标对象以及扩缩容时间边界。具体如下:

apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: AdvancedHorizontalPodAutoscaler
metadata:
  name: ahpa-demo
spec:
  scaleStrategy: observer
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  maxReplicas: 100
  minReplicas: 2
  prediction:
    quantile: 95
    scaleUpForward: 180
  instanceBounds:
  - startTime: "2021-12-16 00:00:00"
    endTime: "2022-12-16 00:00:00"
    bounds:
    - cron: "* 0-8 ? * MON-FRI"
      maxReplicas: 15
      minReplicas: 4
    - cron: "* 9-15 ? * MON-FRI"
      maxReplicas: 15
      minReplicas: 10
    - cron: "* 16-23 ? * MON-FRI"
      maxReplicas: 20
      minReplicas: 15

参数说明:

参数

说明

推荐配置

scaleStrategy

弹性生效策略。目前支持:observerauto

刚上线推荐先观察(observer),再生效(auto

metrics

弹性指标,支持cpumemoryqpsrt

必选

scaleTargetRef

弹性生效工作负载:DeploymentHPAKnative

必选

prediction. quantile

预测分位数。表示业务指标实际值低于设定目标值的概率,越大表示越保守,两位小数,01

推荐范围0.90-0.99, 默认0.99

prediction.scaleUpForward

Pod冷启动时间

建议配置

instanceBounds

扩缩容时间区间边界配置

建议配置

指标预处理

由于指标数据质量参差补齐,在AHPA中我们需要对指标进行预处理,包括指标去重、指标补齐以及指标清洗。在应用启动时,往往遇到启动过程中CPU使用率比较高的现象,以java应用为例,类加载过程是比较耗CPU。这样的情况其实不是业务流量本身造成的,因此对于这类指标是不需要参与预测指标输入的,需要清洗过滤掉。因此通过指标预处理,剔除这部分预测干扰。

边界保护配置的灵活使用

在AHPA 中,可以设置不同时间段的最大值和最小值,这样即使遇到指标异常或者弹性预测不准的情况下,也能有兜底的策略。

apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: AdvancedHorizontalPodAutoscaler
metadata:
  name: ahpa-demo
spec:
  maxReplicas: 100
  minReplicas: 2
  instanceBounds:
  - startTime: "2021-12-16 00:00:00"
    endTime: "2022-12-16 24:00:00"
    bounds:
    - cron: "* 0-8 ? * MON-FRI"
      maxReplicas: 15
      minReplicas: 4
    - cron: "* 9-15 ? * MON-FRI"
      maxReplicas: 15
      minReplicas: 10
    - cron: "* 16-23 ? * MON-FRI"
      maxReplicas: 20
      minReplicas: 15

除了可以进行分钟级别保护之后,利用边界保护配置,可以做到定时弹性或者资源应急准备。也就是如果在某个时间段需要大量的资源(用于突发流量应急、压测等),可以通过调整这个时间段的最小资源,保障这个时间段的资源水位。

利用分位数可以做哪些事情

在 AHPA 中可以设置预测的分位数 quantile ,这个值表示业务指标实际值低于设定目标值的概率,越大表示越保守,取值范围 0~1。越大表示越保守的意思是,值越大表示超出目标设置的数值点越少,也就意味着牺牲更多的资源。但有的业务其实超出一部分目标指标也是可以接受的,这样的情况下也是可以将这个值调低一些。默认推荐值是0.95

典型场景:从HPA转AHPA

客户痛点:当前使用 HPA, 由于应用存在冷启动的问题,导致CPU使用率无法提升。

解决方案:通过 AHPA 预测,资源预热,提升CPU使用率

上线前后使用情况对比:

CPU使用率:较上线提高 9%

•资源成本:成本节省比例 28.68%


典型场景:弹性推荐

客户痛点: 现有弹性方案无法与自身 PaaS 平台结合,期望只做规划不进行生效。

解决方案:通过 AHPA 预测未来24小时Pod实例数,给出弹性规划,不做生效。实际弹性生效由客户自身 PaaS 平台确定执行。

获取配置推荐命令:

kubectl get --raw '/apis/metrics.alibabacloud.com/v1beta1/namespaces/default/predictions/fib-deployment'

参数说明:

参数

说明

periodicity

是否周期性。0:表示无周期,1:有周期

predict_series

未来24小时预测结果,分钟级别

recommend_pod_series

当前推荐pod

小结

当前阿里云容器服务 AHPA 已产品化上线,点击此处了解产品使用详情。

目录
相关文章
|
10天前
|
人工智能 Prometheus 监控
【LLMOps】Paka:大模型管理应用平台部署实践
【4月更文挑战第11天】Paka大模型管理及应用平台介绍
38 0
|
10天前
|
存储 人工智能 运维
SLS 大模型可观测&安全推理审计标准解决方案
本文介绍大模型可观测&安全推理审计解决方案和Demo演示,SLS 提供全面的 LLM 监控和日志记录功能。监控大模型使用情况和性能,自定义仪表盘;SLS 汇总 Actiontrail 事件、云产品可观测日志、LLM 网关明细日志、详细对话明细日志、Prompt Trace 和推理实时调用明细等数据,建设完整统一的大模型可观测方案,为用户的大模型安全推理审计提供全面合规支持。
103979 0
|
10天前
|
存储 机器学习/深度学习 数据采集
云存储在AIOps、数字人以及训练推理场景的最佳实践
12月2日,阿里云存储团队、通义实验室、阿里云培训中心在深圳粤海国际化企业服务交流中心联合举办了云存储技术实战营之数据+AI专场沙龙,吸引了众多开发者和企业代表的关注。
104711 3
|
6月前
|
存储 监控 数据可视化
Nextflow之nf-float插件怎么在云上高效使用
Memory Machine Cloud是一个功能丰富的执行器,可以在Nextflow配置文件中轻松部署。其优势包括成本节省、减少运行时间以及深入洞察应用级别的资源利用情况。
|
8月前
|
传感器 人工智能 监控
FC-PDIO01 CC-TUIO31 监控和持续改进其边缘AI应用
FC-PDIO01 CC-TUIO31 监控和持续改进其边缘AI应用
52 0
|
9月前
|
弹性计算 分布式计算 网络性能优化
【VLDB 2023】基于预测的云资源弹性伸缩框架MagicScaler,实现“高QoS,低成本”双丰收
近日,由阿里云计算平台大数据基础工程技术团队主导,与计算平台MaxCompute团队、华东师范大学数据科学与工程学院、达摩院合作,基于预测的云计算平台资源弹性伸缩框架论文《MagicScaler: Uncertainty-aware, Predictive Autoscaling 》被数据库领域顶会VLDB 2023接收。
|
机器学习/深度学习 文件存储 计算机视觉
【最强模型之道】AWS Auto-Aug:通过Weight共享改进自动数据增广,打造最高精度单模型
【最强模型之道】AWS Auto-Aug:通过Weight共享改进自动数据增广,打造最高精度单模型
141 0
|
运维 达摩院 Kubernetes
借助阿里云 AHPA,苏打智能轻松实现降本增效
"高猛科技已在几个主要服务 ACK 集群上启用了 AHPA。相比于 HPA 的方案,AHPA 的主动预测模式额外降低了 12% 的资源成本。同时 AHPA 能够提前资源预热、自动容量规划,能够很好的应对突发流量。"——赵劲松 (高猛科技高级后台工程师)
26269 0
借助阿里云 AHPA,苏打智能轻松实现降本增效
|
并行计算 算法 编译器
ABB FAN D2D160-CE02-11 多核处理也影响了现代计算软件开发的能力
ABB FAN D2D160-CE02-11 多核处理也影响了现代计算软件开发的能力
ABB FAN D2D160-CE02-11 多核处理也影响了现代计算软件开发的能力
|
存储 机器学习/深度学习 缓存
从资源弹性到数据弹性,乾象如何将云上量化研究效率提升 40%?
本文将分享乾象量化研究基础平台的具体实践,介绍基于 Fluid+JuiceFSRuntime 的公共云弹性量化投研工作支撑。
从资源弹性到数据弹性,乾象如何将云上量化研究效率提升 40%?