节点资源预留计算规则

云原生引擎的节点需要运行一些必要的Kubernetes系统组件和Kubernetes系统资源,因此在节点中需要为这些组件和资源预留一部分的资源,节点上的Pod所使用的资源并非是节点的全部可用容量,云原生引擎对用户节点可分配的资源计算规则如下:

Allocatable = Capacity - Reserved - Eviction Threshold

即:节点资源可分配量 = 总量 - 预留值 - 驱逐阈值

节点内存预留规则

云原生引擎节点内存总预留值等于系统组件预留值与Kubelet管理Pod所需预留值之和。

即:总预留值 = 系统组件预留值 + Kubelet管理Pod所需预留值

除此之外,云原生引擎还预留了额外的100Mikubelet驱逐使用。

表-1 系统组件预留规则

内存总量

系统组件预留值

8GB

0MB

8GB~16GB

(内存总量 - 8G)*10% *1024 MB

16GB~128GB

(8GB*1024*10% + (内存总量 16GB)*1024*6% )MB

>128GB

(8GB*1024*10% + 112GB*1024*6% + (内存总量 128GB)*1024*2%)MB

 

表-2 kubelet预留规则

内存总量范围

Pod数量

Kubelet管理Pod所需预留值

2GB

_

内存总量*25%

>2GB

0~16

700 MB

16~32

(700 + (最大pod数量 - 16)*18.75 )MB

32~64

(1024 + (最大pod数量 - 32)*6.25 )MB

64~128

(1230 + (最大pod数量 - 64)*7.80)MB

>128

(1740 + (最大pod数量 - 128)*11.20)MB

 

节点CPU预留规则

CPU核数

CPU预留值

1core

CPU总量 *6%

1 core~2 core

1core*6% + (CPU总量– 1core)*1 %

2 core~4 core

1core*6% + 1core*1% + (CPU总量– 2core)*0.5%

>4 core

1core*6% + 1core*1% + 2core*0.5% + (CPU总量– 4core)*0.25%