弹性伸缩概述

弹性伸缩是根据业务需求和策略,自动调整计算资源的管理服务,典型的场景包含在线业务弹性、大规模计算训练、深度学习GPU或共享GPU的训练与推理等。本文介绍ACK Serverless集群支持的弹性伸缩方案。

方案

一句话介绍

扩缩依据的指标

使用场景

支持的资源类型

相关文档

HPA

在业务负载上升时快速扩容Pod副本来缓解压力,在业务负载变小时适当缩容以节省资源,是最常用的应用弹性方案。

服务波动较大、服务数量多且需要频繁扩缩容的在线业务场景,例如电商服务、在线教育、金融服务等。

Deployment、StatefulSet等支持scale接口的对象

容器水平伸缩(HPA)

CronHPA

类似Crontab的策略定时对Pod进行扩缩容,支持配置时区、执行的日期、跳过执行的日期(例如节假日),支持和HPA协同使用。

定时扩缩容

业务流量有明显高峰时段、应用程序需要在特定时间执行任务等场景。

Deployment、StatefulSet等

使用容器定时水平伸缩(CronHPA)

VPA

监控Pod的资源消耗模式,灵活推荐CPU和内存资源分配的配置,并在适当的情况下自动进行调整,而不调整Pod的副本数量。

推荐并自动调整Pod中容器的CPU及内存的Request和Limit

需要稳定资源配置的有状态应用的扩容、大型单体应用等场景,通常是在Pod出现异常恢复时生效。

Deployment、DaemonSet、StatefulSet等

容器垂直伸缩(VPA)

AHPA

根据业务历史指标,自动、主动识别弹性周期并对容量进行预测,提前进行弹性规划,解决弹性滞后的问题。

  • 资源指标(CPU、内存、GPU使用率)

  • 流量指标(QPS、RT)

  • 其他自定义指标

业务流量有明显周期性的场景,例如直播、在线教育、游戏服务等。

Deployment、Knative Service等

AHPA概述