其他
AHPA:开启 Kubernetes 弹性预测之门
作者:元毅、子白
导读
Cloud Native
背景
Cloud Native
周期性的业务场景:新型业务比如直播、在线教育和游戏,这些业务有一个很大的共同点就是有非常明显的周期性,这种周期性促使客户思考面向弹性的业务架构。再加上云原生的理念很自然的就想到按需弹起一批服务起来,用完就释放。
Serverless 的到来:Serverless 的核心理念是按需使用,自动弹性。用户不需要容量规划。但当你真正开始使用 Serverless 的时候,会发现这样或那样的问题,其中最需要关注的是弹性滞后、冷启动问题。对于响应时延敏感的业务,这是不可接受的。
传统弹性方案面临的问题
Cloud Native
AHPA 弹性预测
Cloud Native
稳定性:保证用户服务稳定的情况下进行弹性伸缩
免运维:不给用户增加额外的运维负担,包括:不在用户侧增加新的 Controller、Autoscaler 配置语义比 HPA 更清晰
面向 Serverless:以应用为中心,面向应用维度的设计,用户无需关心实例个数的配置,按需使用、自动弹性。
丰富的数据指标:支持包括 CPU、Memory、QPS、RT 以及外部指标等
稳定性保障:AHPA 的弹性逻辑基于主动预热、被动兜底的策略,并结合降级保护,保证了资源稳定。
主动预测:根据历史预测出未来一段时间的趋势结果,适用于周期性的应用。 被动预测:实时预测。针对突发流量场景,通过被动预测实时准备资源。 降级保护:支持配置多个时间区间范围最大、最小实例。
多种伸缩方式:AHPA 支持伸缩方式包括 Knative、HPA 以及 Deployment:
Knative:解决 Serverless 应用场景下,基于并发数/QPS/RT 弹性冷启动的问题 HPA:简化 HPA 弹性策略配置,降低用户使用弹性的门槛,解决使用 HPA 面临的冷启动的问题 Deployment:直接使用 Deployment,自动扩缩容
有明显周期性场景。如直播、在线教育、游戏服务场景等 固定实例数+弹性兜底。如常态业务下应对突发流量等
推荐实例数配置场景
Predict CPU Oberserver:蓝色表示 HPA 实际的 CPU 使用量,绿色表示预测出来的 CPU 使用量。绿色曲线大于蓝色,表明通过预测给出的容量是足够的。
Predict POD Oberserver:蓝色表示使用 HPA 实际的扩所容 Pod 数,绿色表示预测出来的扩所容 Pod 数,绿色曲线小于蓝色,表明通过预测弹性的 Pod 数更低。 周期性:根据历史 7 天的数据,通过预测算法检测到该应用具备周期性。
邀测试用
Cloud Native
点击阅读原文查看阿里云容器服务 AHPA 弹性预测产品文档详情。当前 AHPA 已开启用户邀测,欢迎感兴趣的用户点击文档中“提交工单”位置申请白名单,期待您的试用及反馈。