CCE节点资源预留说明
更新时间:2024-06-20
在 CCE 集群中,节点初始化时需要运行一些必要的系统组件和Kubernetes组件,使该节点能够成功纳入该集群并正常提供服务,因此需要为这些组件预留一部分系统资源,您会看到节点资源总量与节点在Kubernetes中的可分配资源之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,需要需预留的资源可能越多。
为了保证节点的稳定性,CCE 集群节点上会根据机器规格预留一部分资源给Kubernetes的相关组件(kubelet、kube-proxy、docker等)。节点最终可分配的资源计算公式如下:
Allocatable = Capacity - Reserved - Eviction Threshold
节点的可分配总额=总量-预留值-驱逐阈值。
驱逐配置
--eviction-hard=memory.available<5%,nodefs.available<10%,imagefs.available<10%% \
--eviction-soft=memory.available<10%,nodefs.available<15%,imagefs.available<15%% \
--eviction-soft-grace-period=memory.available=2m,nodefs.available=2m,imagefs.available=2m \
--eviction-max-pod-grace-period=30 \
--eviction-minimum-reclaim=memory.available=0Mi,nodefs.available=500Mi,imagefs.available=500Mi
内存预留值:
- 1G以内: 255Mi
- 1-4G: 1Gi
- 4-8G: 1Gi + (X-4)* 0.2Gi
- 8-16G: 1.8Gi + (X-8)* 0.1Gi
- 16-128G: 2.6Gi + (X-16)* 0.06Gi
- 128G以上: 3.56Gi + (X - 128)* 0.02Gi
CPU预留值:
- 1核:60m
- 2核:70m
- 3核:75m
- 4核:80m
- 大于4核: 80m + (X-4)* 2.5m
插件分配
CCE在创建集群时会在kube-system命名空间下默认安装一些插件,这些插件分配了一定的资源,资源占用为整个集群维度,而非节点维度,包括:
组件名称 | 组件作用 | CPU 申请值 | MEM 申请值 |
---|---|---|---|
coredns | DNS服务 | 100m | 70Mi |
cds-flex-volume-ds | 存储插件 | 20m | 20Mi |
metrics-server | 基础监控组件 | 50m | 20Mi |
metrics-server-scraper | 兼容dashboard | 50m | 20Mi |
node-exporter | 机器监控 | 100m | 100Mi |
process-exporter | 进程监控 | 256m | 50Mi |
node-problem-detector | 节点异常检测 | 20m | 100Mi |