更新时间:2025-07-18 GMT+08:00

弹性伸缩概述

随着Kubernetes已经成为云原生应用编排、管理的事实标准,越来越多的应用选择向Kubernetes迁移,用户也越来越关心在Kubernetes上应用如何快速扩容面对业务高峰,以及如何在业务低谷时快速缩容节约资源与成本。

弹性伸缩在云容器引擎(CCE)上的应用非常广泛,典型的使用场景包括:

  • 在线业务弹性:在节假日、促销活动等高峰时段自动增加Pod和节点,处理更多用户请求;在低谷时段自动减少资源,降低成本。
  • 大规模计算训练:根据计算任务的需求动态调整Pod和节点数量,加快任务执行速度。
  • 深度学习GPU训练与推理:动态调整GPU资源的使用,确保训练和推理任务的高效执行;根据需求自动增加或减少GPU节点,提高资源利用率。
  • 定时周期性负载变化:在特定时间段内自动调整Pod和节点数量,处理定时任务的需求;根据任务的资源需求动态调整资源,确保任务顺利执行。

CCE弹性伸缩

CCE的弹性伸缩能力分为如下两个维度:

  • 工作负载弹性伸缩即调度层弹性,作用于Pod,通过调整Pod的数量或规格来适配负载变化。例如,通过HPA在高峰时段自动增加Pod数量,处理更多用户请求;在低谷时段自动减少Pod数量,节约资源。
  • 节点弹性伸缩即资源层弹性,支持根据Pod的资源调度情况,动态增加或减少计算资源(如ECS),确保集群在高负载情况下拥有足够的资源,同时在低负载时期减少资源浪费。

两个维度的弹性组件与能力可以分开使用,也可以结合在一起使用,并且两者之间可以通过调度层面的容量状态进行解耦,详情请参见使用HPA+CA实现工作负载和节点联动弹性伸缩

组件介绍

工作负载弹性伸缩类型介绍

表1 工作负载弹性伸缩类型

类型

组件

组件介绍

参考文档

HPA

HorizontalPodAutoscaler(Kubernetes内置组件)

HorizontalPodAutoscaler是Kubernetes内置组件,实现Pod水平自动伸缩(Horizontal Pod Autoscaling)的功能。CCE在Kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。

创建HPA策略

CustomedHPA

CCE容器弹性引擎

CustomedHPA提供弹性伸缩增强能力,主要面向无状态工作负载进行弹性扩缩容。能够基于指标(CPU利用率、内存利用率)或周期(每天、每周、每月或每年的具体时间点)

创建CustomedHPA策略

CronHPA

CCE容器弹性引擎

CronHPA可以实现在固定时间段对集群进行扩缩容,并且可以和HPA策略共同作用,定时调整HPA伸缩范围,实现复杂场景下的工作负载伸缩。

创建CronHPA定时策略

VPA

容器垂直弹性引擎

Kubernetes中实现POD垂直自动伸缩的功能,即Vertical Pod Autoscaling。

创建VPA策略

AHPA

CCE容器弹性引擎

AHPA策略即Advanced Horizontal Pod Autoscaling,可以根据历史数据提前进行扩缩容动作。

创建AHPA策略

图1 工作负载弹性伸缩

节点弹性伸缩类型介绍

表2 节点弹性伸缩类型

组件名称

组件介绍

适用场景

参考文档

CCE集群弹性引擎

Kubernetes社区开源组件,用于节点水平伸缩,CCE在其基础上提供了独有的调度、弹性优化、成本优化的功能。

全场景支持,适合在线业务、深度学习、大规模成本算力交付等。

节点自动伸缩

CCE突发弹性引擎(对接CCI)

将Kubernetes API扩展到无服务器的容器平台(如CCI),无需关心节点资源。

适合在线突增流量、CI/CD、大数据作业等场景。

CCI弹性承载策略

图2 节点弹性伸缩