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

CronFederatedHPA工作原理

FederatedHPA是基于指标数据进行工作负载扩缩的,因此存在一定的时延。CronFederatedHPA策略基于固定的时间周期,而非指标数据对工作负载进行扩缩。

您可以对一些有周期性变化的工作负载应用CronFederatedHPA策略,在预期的业务高峰时提前扩容资源,预期的业务低谷时定时回收资源。

CronFederatedHPA工作原理

CronFederatedHPA的工作原理如图1。创建CronFederatedHPA策略时,可以设定一个具体的时间,基于设定的时间调整HPA策略的最大和最小Pod数,也可以直接定时调整工作负载中的Pod数量。

图1 CronFederatedHPA工作原理

单独使用CronFederatedHPA

当不使用FederatedHPA策略,仅使用CronFederalHPA策略时,CronFederalHPA策略直接作用于工作负载,定时扩缩Pod数量。您可以通过设置CronFederalHPA策略的生效时间与目标Pod数,实现在固定时间段将工作负载自动扩缩至期望数量。

图2 单独使用CronFederatedHPA策略工作原理

具体流程为:

  1. 创建CronFederalHPA策略,设置CronFederatedHPA的生效时间与目标Pod数。
    • 生效时间:CronFederalHPA策略会在该生效时间自动触发工作负载扩缩。
    • 目标Pod数:在到达生效时间时,所期望的Pod数。
  2. 到达生效时间时,比较工作负载中的现有Pod数1中设置的目标Pod数:目标Pod数大于现有Pod数时扩容工作负载,目标Pod数小于现有Pod数时缩容工作负载。

    现有Pod数:CronFederatedHPA策略生效之前,工作负载中的Pod数量。

同时使用CronFederatedHPA与FederatedHPA

当同时使用FederatedHPA策略与CronFederatedHPA策略时,CronFederatedHPA策略不再直接作用于工作负载,而是在FederatedHPA策略的基础上生效,通过定时调整FederatedHPA策略的最大和最小实例数,实现定时扩缩工作负载的作用。

图3 同时使用两种策略工作原理

具体流程为:

  1. 创建CronFederatedHPA策略,设置CronFederatedHPA的生效时间与目标Pod数。
    • 生效时间:CronFederatedHPA策略会在该生效时间自动触发工作负载扩缩。
    • 目标Pod数:CronFederatedHPA设定的Pod数,在CronFederatedHPA生效时用于调整FederatedHPA的最大/最小Pod数,从而间接调整工作负载中的Pod数量。
  2. 到达生效时间时,比较工作负载的现有Pod数、FederatedHPA策略的最大Pod数、FederatedHPA策略的最小Pod数1中设置的目标Pod数,根据上述四个指标的大小关系,调整FederatedHPA策略的最大和最小Pod数,FederatedHPA策略根据被调整后的最大和最小Pod数对工作负载进行扩缩。
    • 现有Pod数:CronFederatedHPA策略生效之前,工作负载中的Pod数量。
    • FederatedHPA策略的最大Pod数:工作负载的Pod数上限。
    • FederatedHPA策略的最小Pod数:工作负载的Pod数下限。

图4表1列出了在同时使用FederatedHPA策略与CronFederatedHPA策略的情况下可能出现的扩缩容场景。您可以通过表内的示例了解在现有Pod数、最大Pod 数、最小Pod数、目标Pod数的不同大小关系下,CronFederatedHPA策略会对使用FederatedHPA策略、工作负载产生怎样的影响。

图4 同时使用两种策略时的扩缩容场景
表1 同时使用两种策略时的扩缩容场景示例

场景

场景说明

目标Pod数

(CronFederatedHPA内设置)

现有Pod数

(工作负载)

最小Pod数/最大Pod数

(FederatedHPA内设置)

最终结果

场景一

目标Pod数 < 最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数

3

5

4/10

  • 修改FederatedHPA的最小Pod数为3。
  • 工作负载现有Pod数无修改。

场景二

目标Pod数 = 最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数

4

5

4/10

  • FederatedHPA的最小Pod数无修改。
  • 工作负载现有Pod数无修改。

场景三

最小Pod数 < 目标Pod数 < 现有Pod数 ≤ 最大Pod数

5

6

4/10

  • 修改FederatedHPA的最小Pod数为5。
  • 工作负载现有Pod数无修改。

场景四

最小Pod数 < 目标Pod数 = 现有Pod数 ≤ 最大Pod数

5

5

4/10

  • 修改FederatedHPA的最小Pod数为5。
  • 工作负载现有Pod数无修改。

场景五

最小Pod数 ≤ 现有Pod数 < 目标Pod数 < 最大Pod数

6

5

4/10

  • 修改FederatedHPA的最小Pod数为6。
  • 扩展工作负载现有Pod数至6。

场景六

最小Pod数 ≤ 现有Pod数 < 目标Pod数 = 最大Pod数

10

4

4/10

  • 修改FederatedHPA的最小Pod数为10。
  • 扩展工作负载现有Pod数至10。

场景七

最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数< 目标Pod数

11

4

4/10

  • 修改FederatedHPA的最小Pod数为11,修改FederatedHPA的最大Pod数为11。
  • 扩展工作负载现有Pod数至11。