CCE节点资源预留说明
更新时间:2024-11-22
在 CCE 集群中,节点初始化时需要运行一些必要的系统组件和Kubernetes组件,使该节点能够成功纳入该集群并正常提供服务,因此需要为这些组件预留一部分系统资源,您会看到节点资源总量与节点在Kubernetes中的可分配资源之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,需要需预留的资源可能越多。
为了保证节点的稳定性,CCE集群节点上会根据机器规格预留一部分资源给Kubernetes的相关组件(kubelet、kube-proxy、docker等)。CCE存在默认的资源预留策略,也支持通过kubelet配置自定义资源预留。
节点最终可分配的资源计算公式如下:
可分配资源(Allocatable) = 总资源(Capacity)-预留资源(Reserved)-驱逐阈值(Eviction-Threshold)
查询节点可分配资源
执行以下命令,查看节点的资源总量和可分配资源。
kubectl describe node 192.168.102.106 | grep Allocatable -B 9 -A 8
预期输出:
Capacity:
cce.baidubce.com/eni: 0
cce.baidubce.com/ip: 7
cpu: 2
ephemeral-storage: 103145380Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 8139584Ki
pods: 128
Allocatable:
cce.baidubce.com/eni: 0
cce.baidubce.com/ip: 7
cpu: 1900m
ephemeral-storage: 98227408251
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7832384Ki
pods: 128
自定义资源预留
您可以参见自定义kubelet参数配置新增节点的资源预留;或修改节点组配置中的资源预留,新扩容节点将使用该配置。
重要:如需修改自定义资源预留,请合理配置取值,不合理的设置会造成节点的可分配资源变少,对于资源水位较高的节点,可能会触发节点驱逐。
默认资源预留策略
如果没有指定kubelet资源预留参数,CCE会按如下策略自动设置资源预留。
内存预留值:
举例说明:
- 256 GiB内存的节点为例,总的内存预留量计算如下:
4×25%+(8-4)×20%+(16-8)×10%+(128-16)×6%+(256-128)×2% = 11.88 GiB
- 198 GiB内存的节点为例,总的内存预留量计算如下:
4×25%+(8-4)×20%+(16-8)×10%+(128-16)×6%+(198-128)×2% = 10.72 GiB
CPU预留值:
举例说明:
- 32核的节点预留资源为:100+(32000-4000)×2.5% = 800 milliCore
CCE节点默认资源预留示例
关于BCC实例规格的详细信息,请参见实例规格