You need to enable JavaScript to run this app.
导航
扩缩容节点池
最近更新时间:2024.09.11 10:59:42首次发布时间:2022.03.04 23:10:38

容器服务支持节点池的扩缩容功能,允许手动或使用弹性伸缩实现集群的扩缩容。本文为您介绍如何配置节点池的扩容和缩容功能。

前提条件

  • 已创建容器服务集群,详情请参见 创建集群
  • 使用弹性伸缩功能,需要确保当前集群已安装 cluster-autoscaler 组件。详情请参见 安装组件

使用限制

  • 安装 cluster-autoscaler 组件时配置的弹性伸缩规则,与本文描述的操作属于同一种配置。即节点的弹性伸缩功能,有两个配置入口,两边的配置会相互覆盖。
    更多关于节点池中节点相关的弹性伸缩说明,请参见 节点弹性伸缩
  • 弹性伸缩规则,仅对 按量计费 的节点资源生效。

手动扩缩容

调整节点池中节点的数量,可手动触发节点扩缩容,将节点池中的节点扩充/缩小到设置数量。

注意

  • 默认节点池vke-default-nodepool仅支持扩容。
  • 手动缩容将触发移除节点操作,需要注意以下情况:
    • 移除节点将导致节点上的 Pod 自动迁移至其他节点,建议在业务低峰期进行。
    • 手动缩容默认同步销毁释放节点,将同时删除系统盘和数据盘的数据,无法恢复,请谨慎操作。
  1. 登录 容器服务控制台
  2. 在左侧导航栏中选择 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池
  5. 单击目标节点池右侧的 扩缩容
    alt
  6. 节点数量 对话框,按需设置当前节点池的期望节点数量。
    alt

    说明

    节点数量 为您期望的节点数量,而不是新增节点数量。例如:扩容前节点池中已存在 3 个节点。当您配置 节点数量 为 5 时,系统会自动扩容 2 个节点,满足 5 个节点的期望。而不是新增 5 个节点。

  7. 单击 确定,完成配置。

弹性伸缩

步骤一:配置弹性伸缩规则

  1. 登录 容器服务控制台
  2. 在左侧导航栏中选择 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池
  5. 单击节点池列表左上角的 弹性伸缩配置
  6. 单击 编辑规则,在弹出的 弹性伸缩规则 页面,配置规则。

    说明

    此处显示的 弹性伸缩规则 页面配置,与安装 cluster-autoscaler 组件时的配置一致。若编辑规则,表示更改安装 cluster-autoscaler 组件时配置的规则。

    alt
    配置项说明
    集群名称展示当前集群的名称,不可修改。

    扩容算法

    按需选择弹性伸缩扩容算法:

    • 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 的节点。
  7. 单击 确定,完成配置。

步骤二:开启节点池弹性伸缩

您可以在创建节点池时开启弹性伸缩功能,也可以配置存量节点池的弹性伸缩功能。本文以配置存量节点池举例。

  1. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池
  2. 在节点池列表中,选择需要配置弹性伸缩功能的节点池。单击 操作 栏中的 编辑
    alt
  3. 配置节点池的弹性伸缩功能。
    alt
    配置项说明

    弹性伸缩

    勾选启用节点池的弹性伸缩功能。

    • 节点数量范围:弹性伸缩时,节点数量动态调整的范围。输入数值范围:0~2000。
      若节点需求超过当前集群的节点配额总数,您可 提交工单 申请扩容节点配额。
    • 优先级:当弹性扩容算法选择priority时生效,对优先级高的节点池进行扩容,数字越大,优先级越高。输入数值范围:0~100。

后续操作

查看启用弹性伸缩的节点池

在节点池页面中,单击 弹性伸缩配置,可以查看启用弹性伸缩功能的节点池列表。
alt

查看节点池伸缩详情

当节点池发生扩缩容后,您可以查看节点池的伸缩记录和详细信息。

  1. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池
  2. 在节点池列表中,单击节点池名称,进入节点池详情页面。
  3. 单击 伸缩记录 页签,即可查看该节点池的弹性伸缩详情。包括伸缩活动、状态、变化实例数、变化后实例数等信息。

alt

支持基于筛选条件和时间对伸缩记录进行筛选,允许配置多个筛选条件,筛选条件之间是 的关系。包括以下筛选条件:

  • 伸缩记录 ID:基于伸缩记录 ID 进行筛选。您可以在伸缩记录列表中的 伸缩活动 列中查看该 ID 值。例如s-42ccnt
  • 节点 ID:基于伸缩节点 ID 进行筛选。您可以在伸缩记录列表中的 变化实例数 列中查看对应节点的 ID。
  • 伸缩类型:支持 扩容缩容 选项,允许通过弹性伸缩类型进行筛选。