
# 实例资源配额
#### 简介
对于CCE集群中弹性到CCI的pod，bursting插件会根据用户提供的CPU、内存规格，对pod的资源规格做出规整，以达到合理利用资源并满足CCI资源规格的目的。本章节将详细介绍如何进行资源规格的规整。
#### pod资源规格算法
弹性CCI的pod规格，根据container资源的Requests和Limits计算，调整至CCI允许范围。
pod规格的计算方式遵循如下规则：
- 所有应用容器和初始化容器对某个资源的Requests和Limits均会被设置为相等的值，如果配置了Limits，则取Limits值；如果没有配Limits，则取Requests值。
- pod对某个资源的Requests和Limits，是取如下两项的较大者：
  - 所有应用容器对某个资源的Limits之和。
  
  - 所有初始化容器Limits的最大值。
   
Pod规格约束：
- Pod的CPU需大于0。
- 经过资源自动规整后，Pod的CPU在0.25核\~32核范围内，或者等于48核或64核；Memory在1Gi\~512Gi范围内，且必须为1Gi的整数倍，且满足CPU/Memory配比值在1:2\~1:8之间。
 
#### 资源规整算法
假设根据pod资源规格算法求得CPU（core）、Memory（Gi），则自动规整规则如下：
1. 将Pod中除了BestEffort的每个应用容器和初始化容器的CPU向上调整至0.25核的整数倍， Memory向上调整至大于等于0.2Gi。
   ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
   CCE突发弹性引擎（对接 CCI）插件1.5.16版本及之后，不再进行容器级别的向上规整，仅进行pod级别的向上规整。
   
2. 若此时Pod的CPU大于32u或者Memory大于256Gi，则不再继续进行自动调整，否则将继续调整。
3. 将整个pod的CPU配额向上调整至0.25核的整数倍，Memory配额向上调整至1Gi的整数倍。
4. 若pod Memory/CPU的比值小于2，需将pod Memory向上调整至大于等于CPU的2倍，且满足是1Gi的整数倍。
5. 若pod Memory/CPU的比值大于8，需将pod CPU向上调整至大于等于Memory的1/8，且满足是0.25核的整数倍。
以上对pod级别资源向上调整造成的增量CPU和Memory，全部添加到Pod中第一个不为BestEffort的容器上。
![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/caution_3.0-zh-cn.png)
BestEffort容器是指没有配置Requests和Limits的容器。
经过资源自动规整后，Pod规格约束：
- pod的CPU取值在0.25核\~32核范围内，或者等于48核或64核，并且要求值为0.25的整数倍。
- Memory在1Gi\~256Gi范围内，或者等于384Gi或512Gi，且Memory是整数。
- 满足Memory/CPU配比值在2\~8之间。
用户可以通过CCE侧的pod的annotation查看规整后的规格。
- virtual-kubelet.cci.io/burst-pod-cpu: 0.5u
- virtual-kubelet.cci.io/burst-pod-memory: 1Gi
 
#### 资源规整用例说明
| 资源规格 （CPU MEM） | 规整后规格（CPU MEM） | 说明                                         |
|:---|:---|:---|
| 37U 37Gi       | 无法创建pod弹性到CCI。 | CPU规格无效。                                   |
| 30U 257Gi      | 无法创建pod弹性到CCI。 | 存算比大于8，提高CPU。但无法满足CPU规格有效，拦截。              |
| 0.35U 0.5Gi    | 0.5U 1Gi       | CPU向上取整0.25的整数倍，MEM向上取整1的整数倍。存算比符合要求，不做调整。 |
| 0.35U 1.5Gi    | 0.5U 2Gi       | CPU向上取整0.25的整数倍，MEM向上取整1的整数倍。存算比符合要求，不做调整。 |
| 0.45U 18Gi     | 2.25U 18Gi     | CPU向上取整0.25的整数倍，MEM向上取整1的整数倍。存算比大于8，提高CPU。 |
| 2U 2Gi         | 2U 4Gi         | 存算比小于2，提高MEM。                              |
   
