更新时间:2024-10-14 GMT+08:00

节点池弹性伸缩优先级说明

前提条件

如需使用节点规格优先级功能,autoscaler插件版本要求为1.19.35、1.21.28、1.23.30、1.25.20及以上。其中AZ均衡分布策略在1.23.122、1.25.117、1.27.85、1.28.52及以上支持。

弹性扩容策略

遵循节点池优先级和规格优先级的原则弹性扩容。

  1. 预判规格筛选:
    • 通过预判算法,在所有节点池中选择能满足Pending状态的Pod正常调度的规格。
    • 考虑因素包括节点资源是否满足Pod的request值,以及nodeSelector、nodeAffinity和taints等是否满足Pod正常调度的条件。
    • 另外,部分节点池规格由于资源不足等扩容失败进入5min冷却期后,冷却期间扩容算法会自动过滤此类规格。
  2. 节点池优先级排序:

    为每个节点池分配一个优先级,根据节点池优先级进行排序,优先选择优先级最高的节点池。

  3. 规格优先级选择:

    如果存在多个节点池优先级最高的情况,则根据以下原则挑选优先级最高的规格:

    • 首先,选择节点池中优先级最高的规格。
    • 其次,如果存在规格优先级相同的情况,根据最小浪费原则,选择既能满足Pod正常调度、浪费资源又最少的规格。
    • 最后,如果存在多个规格满足最小浪费原则,则在可用区(AZ)均衡分布的基础上选择。
  4. 处理资源不足或创建失败情况处理:

    如果首选规格因可用区资源配额不足等原因创建失败,将按照节点池内规格优先级的顺序,尝试创建下一个优先级的规格,原实例进入5分钟的冷却时间。

    如果一个节点池中的所有规格都无法成功创建实例,系统将顺延至下一个优先级的节点池继续尝试。

手动扩容策略

当节点池进行手动扩缩容时,您可选择指定的规格进行伸缩。当选择的节点规格资源不足或配额不足时,会导致扩容失败。

设置优先级

关于如何设置节点池规格优先级详情请参见配置集群弹性伸缩策略