更新时间:2025-08-16 GMT+08:00
分享

容器垂直弹性引擎

CCE容器垂直弹性引擎是一款支持应用垂直弹性伸缩(VPA,Vertical Pod Autoscaling)的插件,可以根据容器资源历史使用情况自动调整Pod的CPU、Memory资源申请量。

开源社区地址:https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler

功能概述

VPA以容器为单位对资源指标进行聚合计算,根据容器的资源实际使用情况动态调整容器的资源申请值(Requests),同时保证调整前和调整后资源限制值(Limits)与资源申请值(Requests)的比值不变。目前支持CPU与Memory两类资源的垂直伸缩。

详细功能说明如下:

  • VPA计算CPU与Memory建议值时需要数依赖Metrics API采集的数据。
  • VPA在计算资源建议值时,Memory资源的单Pod最小理论建议值250Mi,Pod内单容器的最小理论建议值为250Mi/Pod容器数目。CPU资源的单Pod最小理论建议值为25m,Pod内单容器的最小理论建议值为25m/Pod容器数目。

    您可在创建VPA任务时,通过配置containerPolicies字段为容器配置弹性资源上下限。

  • 如果容器初始时同时配置了资源申请值与限制值,VPA计算后给出的建议值会修改该容器的资源申请值,而限制值则根据容器初始创建时申请值与限制值的比例进行计算。

    例如,某个容器原来配置了CPU资源申请值为100m与限制值为200m,申请值与限制值的比例为1:2。如果VPA计算后的资源申请值建议为80m,则该容器最终的CPU资源申请值为80m,限制值为160m。

  • VPA会尽量让建议值符合其他资源限制要求。但如果VPA建议值与资源限制出现冲突,VPA建议值不会根据资源限制进行调整,可能导致VPA配置值超出其他资源限制要求。

    例如,某一个命名空间的内存申请值不能超过2GiB,而VPA的建议值如果比较大,可能导致Pod更新后整个命名空间的资源申请量超过2GiB从而出现无法调度。

前提条件

安装插件

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 单击左侧导航栏的“插件中心”,在右侧找到容器垂直弹性引擎插件,单击“安装”
  3. 在安装插件页面,根据需求选择“规格配置”

    • 选择“系统预置规格”时,您可根据集群Pod数量选择“小规格”、“中规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
    • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。

  4. 设置插件实例的部署策略。

    • 调度策略对于DaemonSet类型的插件实例不会生效。
    • 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
    表1 插件调度配置

    参数

    参数说明

    多可用区部署

    • 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
    • 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。

    节点亲和

    • 不配置:插件实例不指定节点亲和调度。
    • 指定节点调度:指定插件实例部署的节点。若不指定,将根据集群默认调度策略进行随机调度。
    • 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。
    • 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。

      同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。

    容忍策略

    容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。

    插件会对实例添加针对node.kubernetes.io/not-readynode.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。

    详情请参见设置容忍策略

  5. 单击“安装”

组件说明

表2 CCE容器垂直弹性引擎组件

容器组件

说明

资源类型

vpa-admission-controller

Pod创建时,将容器的资源申请量调整为VPA生成的建议值。

Deployment

vpa-recommender

采集容器的CPU、Memory的实际资源指标,根据实际资源使用率生成容器资源申请量配置建议值。

Deployment

vpa-updater

驱逐实际资源申请量与VPA建议值有偏差的Pod,触发Pod重建以使得资源建议值生效至新建的Pod。

Deployment

相关文档

  • 插件安装完成后,您可以创建VPA策略,自动调整Pod的CPU、Memory资源申请量,详情请参见创建VPA策略
  • 关于VPA策略的工作原理解析,请参见VPA工作原理

版本记录

表3 容器垂直弹性引擎版本记录

插件版本

支持的集群版本

更新特性

社区版本

1.0.25

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

v1.32

支持CCE v1.32集群

1.3.0

1.0.11

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

升级到社区1.3.0版本

1.3.0

1.0.6

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

支持CCE v1.31集群

1.1.2

1.0.4

v1.25

v1.27

v1.28

v1.29

v1.30

支持VPA能力

1.1.2

相关文档