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:表示根据节点池启用 弹性伸缩 后设置的优先级,选择优先级最高的节点池进行扩容。​
    弹性灵敏度​
    用于判断集群弹性伸缩的时间间隔,支持取值:10s、15s、30s、60s、120s、180s 和 300s。​
    自动缩容​
    是否开启节点的自动缩容:​
    • 开启:当集群中有较多空闲节点资源时会触发缩容。仅对按量计费节点资源生效。​
    • 关闭:节点扩容后,即使请求率下降,也不会自动缩容。​
    启动污点​
    单击 添加,配置启动污点。当节点上存在该污点时,系统认为该节点未完成初始化。​
    忽略污点​
    单击 添加,配置忽略污点。扩容过程中,系统会忽略节点或节点池中指定污点的调度属性。​
    ​
  • 开启 自动缩容 后,需要配置以下参数。​
  • ​
    配置项​
    说明​
    非 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
这个页面对您有帮助吗?
有用
有用
无用
无用