容器服务支持节点池的扩缩容功能,允许手动或使用弹性伸缩实现集群的扩缩容。本文为您介绍如何配置节点池的扩容和缩容功能。
前提条件
- 已创建容器服务集群,详情请参见 创建集群。
- 使用弹性伸缩功能,需要确保当前集群已安装 cluster-autoscaler 组件。详情请参见 安装组件。
使用限制
- 安装 cluster-autoscaler 组件时配置的弹性伸缩规则,与本文描述的操作属于同一种配置。即节点的弹性伸缩功能,有两个配置入口,两边的配置会相互覆盖。
更多关于节点池中节点相关的弹性伸缩说明,请参见 节点弹性伸缩。 - 弹性伸缩规则,仅对 按量计费 的节点资源生效。
手动扩缩容
调整节点池中节点的数量,可手动触发节点扩缩容,将节点池中的节点扩充/缩小到设置数量。
注意
- 默认节点池
vke-default-nodepool
仅支持扩容。 - 手动缩容将触发移除节点操作,需要注意以下情况:
- 移除节点将导致节点上的 Pod 自动迁移至其他节点,建议在业务低峰期进行。
- 手动缩容默认同步销毁释放节点,将同时删除系统盘和数据盘的数据,无法恢复,请谨慎操作。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群。
- 在集群列表页面,单击目标集群。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池。
- 单击目标节点池右侧的 扩缩容。
- 在 节点数量 对话框,按需设置当前节点池的期望节点数量。
说明
该 节点数量 为您期望的节点数量,而不是新增节点数量。例如:扩容前节点池中已存在 3 个节点。当您配置 节点数量 为 5 时,系统会自动扩容 2 个节点,满足 5 个节点的期望。而不是新增 5 个节点。
- 单击 确定,完成配置。
弹性伸缩
步骤一:配置弹性伸缩规则
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群。
- 在集群列表页面,单击目标集群。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池。
- 单击节点池列表左上角的 弹性伸缩配置。
- 单击 编辑规则,在弹出的 弹性伸缩规则 页面,配置规则。
说明
此处显示的 弹性伸缩规则 页面配置,与安装 cluster-autoscaler 组件时的配置一致。若编辑规则,表示更改安装 cluster-autoscaler 组件时配置的规则。
配置项 | 说明 |
---|
集群名称 | 展示当前集群的名称,不可修改。 |
扩容算法 | 按需选择弹性伸缩扩容算法: - random:表示随机选择一个节点池进行扩容。
- most-pods:表示选择能够调度最多 Pod 的节点池进行扩容。
- least-waste:表示选择空闲 CPU 资源最少的节点池进行扩容。
- priority:表示选择所设优先级最高的节点池进行扩容。创建节点池或编辑节点池时,可修改优先级。
|
弹性灵敏度 | 配置集群弹性伸缩灵敏度,用于系统判断伸缩的时间间隔。支持:10s、15s、30s、60s、120s、180s 和 300s。 |
自动缩容 | 默认不启用,即使节点使用率下降也不会触发自动缩容。开启后,集群中有较多空闲节点资源时将触发自动缩容,且仅对按量计费节点资源生效。 |
非 GPU 节点的缩容阈值 | (开启 自动缩容 后需配置)当非 GPU 类型节点的 CPU、内存资源使用率(单资源已使用量÷单资源总量*100% )低于该阈值时,可能会触发自动缩容。默认 50%。 说明 非 GPU 类型节点的 CPU 或内存资源中任意一个达到缩容阈值,即可触发该规则。 |
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 终止的最大时间,单位为秒,默认为 5。 |
Pod 最小副本数 | 节点排水时,允许副本集中存在的最小 Pod 数量。 |
开启 Daemonset Pod 排水 | 节点缩容前,是否对节点上 Daemonset Pod 排水。 |
不缩容节点 | 勾选不进行缩容的节点。可选项如下: - 包含本地储存 Pod 的节点。
- 包含 kube-system 命名空间下非 DaemonSet 管理的 Pod 的节点。
|
- 单击 确定,完成配置。
步骤二:开启节点池弹性伸缩
您可以在创建节点池时开启弹性伸缩功能,也可以配置存量节点池的弹性伸缩功能。本文以配置存量节点池举例。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池。
- 在节点池列表中,选择需要配置弹性伸缩功能的节点池。单击 操作 栏中的 编辑。
- 配置节点池的弹性伸缩功能。
配置项 | 说明 |
---|
弹性伸缩 | 勾选启用节点池的弹性伸缩功能。 - 节点数量范围:弹性伸缩时,节点数量动态调整的范围。输入数值范围:0~2000。
若节点需求超过当前集群的节点配额总数,您可 提交工单 申请扩容节点配额。 - 优先级:当弹性扩容算法选择
priority 时生效,对优先级高的节点池进行扩容,数字越大,优先级越高。输入数值范围:0~100。
|
后续操作
查看启用弹性伸缩的节点池
在节点池页面中,单击 弹性伸缩配置,可以查看启用弹性伸缩功能的节点池列表。
查看节点池伸缩详情
当节点池发生扩缩容后,您可以查看节点池的伸缩记录和详细信息。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池。
- 在节点池列表中,单击节点池名称,进入节点池详情页面。
- 单击 伸缩记录 页签,即可查看该节点池的弹性伸缩详情。包括伸缩活动、状态、变化实例数、变化后实例数等信息。
支持基于筛选条件和时间对伸缩记录进行筛选,允许配置多个筛选条件,筛选条件之间是 与 的关系。包括以下筛选条件:
- 伸缩记录 ID:基于伸缩记录 ID 进行筛选。您可以在伸缩记录列表中的 伸缩活动 列中查看该 ID 值。例如
s-42ccnt
。 - 节点 ID:基于伸缩节点 ID 进行筛选。您可以在伸缩记录列表中的 变化实例数 列中查看对应节点的 ID。
- 伸缩类型:支持 扩容 和 缩容 选项,允许通过弹性伸缩类型进行筛选。