更新时间:2024-01-04 GMT+08:00

更新弹性伸缩配置

开启弹性伸缩功能可根据弹性伸缩策略自动伸缩,否则只能手动修改节点池下的节点数量。

约束与限制

为保证节点池弹性伸缩功能的正常使用,需要在集群中安装CCE集群弹性引擎

更新弹性伸缩配置

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 单击左侧导航栏的“节点管理”,在目标节点池所在行右上角单击“弹性伸缩”

    • 若未安装autoscaler插件,请根据业务需求配置插件参数后单击“安装”,并等待插件安装完成。插件配置详情请参见CCE集群弹性引擎
    • 若已安装autoscaler插件,则可直接配置弹性伸缩策略。

  3. 配置弹性伸缩策略。

    弹性扩容

    • 自动扩容:当集群下负载实例无法调度时自动扩容(从节点池),即当出现Pod处于Pending状态无法调度时,集群会自动扩容节点。若Pod已经设置亲和某个节点,则不会自动扩容节点。该功能一般与HPA策略配合使用,具体请参见使用HPA+CA实现工作负载和节点联动弹性伸缩

      如不勾选,则只能通过自定义弹性策略进行扩缩容。

      自动扩容开关对集群下的所有节点池都会生效,修改后会重启autoscaler插件。

    • 自定义弹性策略:单击“添加策略”,在弹出的添加规则窗口中设置参数。您可以设置多条节点伸缩策略,最多可以添加1条CPU使用率指标规则、1条内存使用率指标规则,且规则总数小于等于10条。
      规则类型可选择“指标触发”“周期触发”,两种类型区别如下:
      表1 自定义规则类型

      规则类型

      参数设置

      指标触发

      • 触发条件:请选择“CPU分配率”“内存分配率”,输入百分比的值。该百分比应大于autoscaler插件中配置的缩容百分比。
        说明:
        • 分配率 = 节点池容器组(Pod)资源申请量 / 节点池Pod可用资源量 (Node Allocatable) 。
        • 如果多条规则同时满足条件,会有如下两种执行的情况:

          如果同时配置了“CPU分配率”“内存分配率”的规则,两种或多种规则同时满足扩容条件时,执行扩容节点数更多的规则。

          如果同时配置了“CPU分配率”“周期触发”的规则,当达到“周期触发”的时间值时CPU也满足扩容条件时,较早执行的A规则会将节点池状态置为伸缩中状态,导致B规则无法正常执行。待A规则执行完毕,节点池状态恢复正常后,B规则也不会执行。

        • 配置了“CPU分配率”“内存分配率”的规则后,策略的检测周期会因autoscaler每次循环的处理逻辑而变动。只要一次检测出满足条件就会触发扩容(还需要满足冷却时间、节点池状态等约束条件)。
        • 当集群中的节点数已到达集群规模上限时,或CPU、内存达到autoscaler插件设置的上限时,将不会触发指标扩容。
      • 执行动作:达到触发条件后所要执行的动作。
        • 自定义:为节点池增加指定数量的节点。
        • 自动计算:当达到触发条件时,自动扩容节点,将分配率恢复到触发条件以下。计算公式如下:

          扩容节点数 = 节点池容器组(Pod)资源申请值 / (单节点可用资源值 * 目标分配率) - 当前节点数 + 1

      周期触发

      • 触发时间:可选择每天、每周、每月或每年的具体时间点。
      • 执行动作:达到触发时间值后所要执行的动作,为节点池增加指定数量的节点。
    • 冷却时间:指当前节点池扩容出的节点多长时间不能被缩容。

    弹性缩容

    自动缩容:当集群下的节点满足缩容条件时会被自动缩容。

    自动缩容开关对集群下的所有节点池都会生效,修改后会重启autoscaler插件。

    • 缩容条件:当集群节点资源的Request值(CPU和内存需同时满足)连续一段时间(默认10min)低于一定百分比(默认50%)时,会触发集群缩容操作,且不可用状态下的节点超过 20 分钟会被自动回收。
    • 缩容并发数:最多支持多少个空闲节点同时缩容,默认10。
      缩容并发数只针对完全空闲节点,完全空闲节点可实现并发缩容。非完全空闲节点则只能逐个缩容。

      节点在缩容的时候,若节点上的Pod不需要驱逐(DaemonSet的Pod认为不需要驱逐),则认为该节点为完全空闲节点,否则认为该节点为非完全空闲。

    • 检查间隔:节点被判定不可移除后能再次启动检查的时间间隔,默认5min。
    • 冷却时间:
      • 扩容执行后多久能再次判断是否缩容:默认10min。

        集群中如果同时存在自动扩容和自动缩容的场景,建议配置“扩容执行后多久能再次判断是否缩容”为0min,避免由于部分节点池持续扩容或者扩容失败重试而阻塞整体缩容节点行为,导致非预期的节点资源浪费。

      • 节点删除后多久能再次判断是否缩容:删除节点后能再次启动缩容评估的时间间隔,默认10min。
      • 缩容失败后多久能再次判断是否缩容:缩容失败后能再次启动缩容评估的时间间隔,默认3min。

    伸缩配置

    • 节点数范围:弹性伸缩时节点池下的节点数量会始终介于节点数范围内。
    • 节点池优先级:数值越大节点池优先级越高。

    伸缩对象

    规格选择:对节点池中的节点规格单独设置是否开启弹性伸缩。

  4. 配置完成后,单击“确定”