You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
节点弹性伸缩
配置节点自动伸缩(Cluster AutoScaler)
复制全文
下载 pdf
配置节点自动伸缩(Cluster AutoScaler)
容器服务集群支持基于 cluster-autoscaler 的节点自动伸缩,本文介绍如何配置节点弹性伸缩。
背景信息
节点扩容
CA 扩容节点的流程如下:
  1. CA 定期(默认间隔 10s)检查集群中是否存在大于您自定义优先级(默认优先级为 10)的 Pending 状态 Pod。
  1. 如果存在由于资源不足导致 Pending 状态的 Pod 的时候,CA 会从用户的节点池中,根据用户配置的扩容算法,创建一个或多个节点。
  1. 节点将会被添加到集群中,成为 Ready 的节点,用来创建 Pod。
  1. Kubernetes 调度器分配 Pending 状态的 Pod 到新的节点上。如果仍然有一些 Pod 处于 Pending 状态,这个过程将会重复,将会有更多的节点添加到集群中。
alt
当集群中有多个节点池时,可以通过配置不同的扩容算法来选择节点,支持以下四种算法:
  • random:表示随机选择一个节点池进行扩容。
  • most-pods:表示选择能够调度最多 Pod 的节点池进行扩容。
  • least-waste:表示选择空闲 CPU 资源最少的节点池进行扩容。
  • priority:表示选择所设优先级最高的节点池进行扩容。
节点缩容
CA 缩容节点的流程如下:
  1. CA 定期(默认间隔 10s)监测节点的资源使用情况。
  1. 节点的资源请求值(Request)很低(阈值可配,默认 50%),且该节点上的 Pod 可以被调度到其他节点,同时节点所在集群中所有开启了弹性伸缩的节点池,长时间(时间可配,默认 10 分钟)没有执行任何扩容操作时,CA 将自动删除该节点,以达到节省资源的目的。
alt
说明
  • CA 仅根据 Pod 的调度情况和节点的整体资源使用情况来决定是否增加或删除节点,跟 Pod 或节点的资源度量(metrics)没有直接关系。
  • 由于在删除节点时,会发生 Pod 重新调度的情况。因此,如果配置了自动缩容,则应用必须可以容忍重新调度和短时的中断,或采用多副本的策略来避免业务中断。
  • 对于 GPU 类型规格的节点池,在扩容节点时 CA 会等待节点上分配 GPU 资源。如果长时间无法分配 GPU 资源,会导致 CA 无法正常扩缩容,因此在使用 GPU 类型规格的节点池时,请确保集群中也同时安装了 nvidia-device-plugin 组件。组件安装方法,请参见 nvidia-device-plugin
使用限制
  • cluster-autoscaler 组件和 karpenter 组件互斥,不能同时安装。
  • 安装组件时配置的弹性伸缩规则,与本文中的配置相同。即节点弹性伸缩配置,有两种配置入口,两边的配置会相互覆盖。
  • 节点弹性伸缩仅对 按量计费 的节点资源生效。
前提条件
  • 已安装 cluster-autoscaler 组件,详情请参见 安装组件
  • 已创建节点池,并启用节点池 弹性伸缩 功能。
  • 新创建节点池时,允许直接启用弹性伸缩。详细操作,请参见 创建节点池
  • alt
  • 已创建的节点池,通过编辑节点池,启用弹性伸缩。详细操作,请参见 编辑节点池
操作步骤
  1. 单击左侧导航栏中的 集群
  1. 在集群列表页面,单击目标集群。
  1. 在集群管理页面的左侧导航栏中选择 节点池,单击 弹性伸缩配置
  1. 弹性伸缩配置 页面中,单击 编辑规则,配置弹性伸缩规则参数。
说明
该处显示的 弹性伸缩规则 页面配置,与安装组件时的配置一致。若编辑规则,表示更改安装组件时配置的规则。
  • 配置项
    说明
    集群名称
    当前集群的名称,不可修改。
    扩容算法
    节点池自动扩容时所采用的扩容算法类型,包括:
    • random:表示随机选择一个节点池进行扩容。
    • most-pods:表示选择能够调度最多 Pod 的节点池进行扩容。
    • least-waste:表示选择空闲 CPU 资源最少的节点池进行扩容。
    • priority:表示根据节点池启用 弹性伸缩 后设置的优先级,选择优先级最高的节点池进行扩容。
    弹性灵敏度
    用于判断集群弹性伸缩的时间间隔,支持取值:10s15s30s60s120s180s300s
    自动缩容
    是否开启节点的自动缩容:
    • 开启:当集群中有较多空闲节点资源时会触发缩容。仅对按量计费节点资源生效。
    • 关闭:节点扩容后,即使请求率下降,也不会自动缩容。
    启动污点
    单击 添加,配置启动污点。当节点上存在该污点时,系统认为该节点未完成初始化。
    忽略污点
    单击 添加,配置忽略污点。扩容过程中,系统会忽略节点或节点池中指定污点的调度属性。
  • 开启 自动缩容 后,需要配置以下参数。
  • 配置项
    说明
    非 GPU 节点的缩容阈值
    当非 GPU 类型节点的 CPU 和内存资源请求率(单资源请求量÷单资源总量*100%)均低于该阈值时,可能会触发自动缩容。默认阈值为 50%。
    GPU 节点的缩容阈值
    GPU 类型节点的缩容策略根据其是否使用 mGPU 能力,有不同的缩容策略,默认阈值为 50%:
    • 未使用 mGPU:当节点的 GPU 资源请求率(单资源请求量÷单资源总量*100%)低于该阈值时,可能会触发自动缩容。
    • 已使用 mGPU:当 mGPU 的 GPU 算力、GPU 显存、内存、CPU 中任意一个资源的请求率(单资源请求量÷单资源总量*100%)低于该阈值时,可能会触发自动缩容。
    注意
    • mGPU 目前处于 公测 阶段,功能详细说明参见 mGPU 概述
    • 仅以下版本的 cluster-autoscaler 组件支持配置该缩容阈值:
    • v1.26.3-vke.6 及以上版本。
    • v1.24.2-vke.6 及以上版本。
    • v1.20.2-vke.20 及以上版本。
    • 若集群中已安装的 cluster-autoscaler 组件版本较低时,请升级组件。详细操作,请参见 升级组件;cluster-autoscaler 组件的发版记录,请参见 cluster-autoscaler
    缩容触发时延
    当节点资源请求率低于阈值,并持续该时间段后,集群将触发自动缩容。默认 10 分钟。
    扩容后缩容冷却时间
    节点进行扩容后,能再次执行缩容所需等待的时间间隔。默认 10 分钟。
    基于节点池本地状态计算缩容延迟
    是否基于节点本地状态计算缩容延迟。
    • 启用:为每个节点池维护独立的 “缩容延迟计时器”,加速缩容,避免浪费资源。
    • 禁用:集群中节点进行扩容后,默认集群中所有节点池在缩容冷却时间内不会进行缩容。
    缩容失败冷却时间
    节点缩容失败后,能再次执行缩容所需等待的时间间隔。默认 3 分钟。
    最大并发缩容数
    节点缩容时,允许同时进行缩容的并发数目。默认 5。
    Pod 终止超时时间
    节点排水时等待 Pod 终止的最大等待时间。整数形式,取值范围为 1~10000,单位为秒。默认为 600 秒。
    Pod 最小副本数
    节点排水时允许存在的最小 Pod 数量。整数形式,取值范围为 1~10000。默认为 0。
    Daemonset Pod 排水
    节点缩容前是否驱逐节点上 DaemonSet 类型的 Pod。
    • 启用:表示节点缩容前,会驱逐节点上 DaemonSet 类型的 Pod。
    • 禁用:表示节点缩容前,不会驱逐节点上 DaemonSet 类型的 Pod。
    不缩容节点
    勾选不进行缩容的节点。可选项如下:
    • 包含本地储存 Pod 的节点。
    • 包含 kube-system 命名空间下非 DaemonSet 管理的 Pod 的节点。
    计算节点缩容水位时忽略 DaemonSet 资源占用
    计算节点资源利用率时,是否忽略 DaemonSet 类型的资源占用。
    • 勾选:表示计算节点资源利用率时,会忽略 DaemonSet 类型的资源占用。
    • 不勾选:表示计算节点资源利用率时,不会忽略 DaemonSet 类型的资源占用。
    启动污点
    配置启动污点,若节点中存在指定的污点,则认为该节点未完成初始化。
    忽略污点
    配置忽略污点,扩容过程中忽略节点、节点池中指定的污点调度属性。
    等待节点就绪最大超时时间
    配置节点缩容时,等待节点就绪的最大超时时间,整数形式,取值范围为 1~60,单位为分钟。
  1. 单击 确定,完成配置。
结果验证
配置完成后,您可以查看弹性伸缩规则和已开启弹性伸缩的节点池。
alt
当集群中的节点资源不足,导致 Pod Pending 时,系统会自动扩容集群节点数量。单击节点池名称,进入节点池详情,选择 伸缩记录 页签,即可查看该节点池的自动伸缩记录。
alt
相关文档
Kubernetes 的节点伸缩原理,请参见 社区文档
最近更新时间:2026.02.03 17:52:37
这个页面对您有帮助吗?
有用
有用
无用
无用