
# CronFederatedHPA工作原理
FederatedHPA是基于指标数据进行工作负载扩缩的，因此存在一定的时延。CronFederatedHPA策略基于固定的时间周期，而非指标数据对工作负载进行扩缩。
您可以对一些有周期性变化的工作负载应用CronFederatedHPA策略，在预期的业务高峰时提前扩容资源，预期的业务低谷时定时回收资源。
#### CronFederatedHPA工作原理
CronFederatedHPA的工作原理如[图1]。创建CronFederatedHPA策略时，可以设定一个具体的时间，基于设定的时间调整HPA策略的最大和最小Pod数，也可以直接定时调整工作负载中的Pod数量。
图1CronFederatedHPA工作原理   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001796643017.png "点击放大")
#### 单独使用CronFederatedHPA
当不使用FederatedHPA策略，仅使用CronFederatedHPA策略时，CronFederatedHPA策略直接作用于工作负载，定时扩缩Pod数量。您可以通过设置CronFederatedHPA策略的生效时间与目标Pod数，实现在固定时间段将工作负载自动扩缩至期望数量。
图2单独使用CronFederatedHPA策略工作原理   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001749724282.png "点击放大")
具体流程为：
1. 创建CronFederatedHPA策略，设置CronFederatedHPA的生效时间与目标Pod数。
   - 生效时间：CronFederatedHPA策略会在该生效时间自动触发工作负载扩缩。
   
   - 目标Pod数：在到达生效时间时，所期望的Pod数。
    
2. 到达生效时间时，比较工作负载中的**现有Pod数** 与[1]中设置的**目标Pod数** ：目标Pod数大于现有Pod数时扩容工作负载，目标Pod数小于现有Pod数时缩容工作负载。
   现有Pod数：CronFederatedHPA策略生效之前，工作负载中的Pod数量。
   
 
#### 同时使用CronFederatedHPA与FederatedHPA
当同时使用FederatedHPA策略与CronFederatedHPA策略时，CronFederatedHPA策略不再直接作用于工作负载，而是在FederatedHPA策略的基础上生效，通过定时调整FederatedHPA策略的最大和最小实例数，实现定时扩缩工作负载的作用。
图3同时使用两种策略工作原理   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001796723973.png "点击放大")
具体流程为：
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同时使用两种策略时的扩缩容场景   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001749883158.png "点击放大")
 表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。   |
   
