CronFederatedHPA工作原理
FederatedHPA是基于指标数据进行工作负载扩缩的,因此存在一定的时延。CronFederatedHPA策略基于固定的时间周期,而非指标数据对工作负载进行扩缩。
您可以对一些有周期性变化的工作负载应用CronFederatedHPA策略,在预期的业务高峰时提前扩容资源,预期的业务低谷时定时回收资源。
CronFederatedHPA工作原理
CronFederatedHPA的工作原理如图1。创建CronFederatedHPA策略时,可以设定一个具体的时间,基于设定的时间调整HPA策略的最大和最小Pod数,也可以直接定时调整工作负载中的Pod数量。
单独使用CronFederatedHPA
当不使用FederatedHPA策略,仅使用CronFederalHPA策略时,CronFederalHPA策略直接作用于工作负载,定时扩缩Pod数量。您可以通过设置CronFederalHPA策略的生效时间与目标Pod数,实现在固定时间段将工作负载自动扩缩至期望数量。
具体流程为:
- 创建CronFederalHPA策略,设置CronFederatedHPA的生效时间与目标Pod数。
- 生效时间:CronFederalHPA策略会在该生效时间自动触发工作负载扩缩。
- 目标Pod数:在到达生效时间时,所期望的Pod数。
- 到达生效时间时,比较工作负载中的现有Pod数与1中设置的目标Pod数:目标Pod数大于现有Pod数时扩容工作负载,目标Pod数小于现有Pod数时缩容工作负载。
现有Pod数:CronFederatedHPA策略生效之前,工作负载中的Pod数量。
同时使用CronFederatedHPA与FederatedHPA
当同时使用FederatedHPA策略与CronFederatedHPA策略时,CronFederatedHPA策略不再直接作用于工作负载,而是在FederatedHPA策略的基础上生效,通过定时调整FederatedHPA策略的最大和最小实例数,实现定时扩缩工作负载的作用。
具体流程为:
- 创建CronFederatedHPA策略,设置CronFederatedHPA的生效时间与目标Pod数。
- 生效时间:CronFederatedHPA策略会在该生效时间自动触发工作负载扩缩。
- 目标Pod数:CronFederatedHPA设定的Pod数,在CronFederatedHPA生效时用于调整FederatedHPA的最大/最小Pod数,从而间接调整工作负载中的Pod数量。
- 到达生效时间时,比较工作负载的现有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策略、工作负载产生怎样的影响。
场景 |
场景说明 |
目标Pod数 (CronFederatedHPA内设置) |
现有Pod数 (工作负载) |
最小Pod数/最大Pod数 (FederatedHPA内设置) |
最终结果 |
---|---|---|---|---|---|
场景一 |
目标Pod数 < 最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数 |
3 |
5 |
4/10 |
|
场景二 |
目标Pod数 = 最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数 |
4 |
5 |
4/10 |
|
场景三 |
最小Pod数 < 目标Pod数 < 现有Pod数 ≤ 最大Pod数 |
5 |
6 |
4/10 |
|
场景四 |
最小Pod数 < 目标Pod数 = 现有Pod数 ≤ 最大Pod数 |
5 |
5 |
4/10 |
|
场景五 |
最小Pod数 ≤ 现有Pod数 < 目标Pod数 < 最大Pod数 |
6 |
5 |
4/10 |
|
场景六 |
最小Pod数 ≤ 现有Pod数 < 目标Pod数 = 最大Pod数 |
10 |
4 |
4/10 |
|
场景七 |
最小Pod数 ≤ 现有Pod数 ≤ 最大Pod数< 目标Pod数 |
11 |
4 |
4/10 |
|