容器引擎CCE

    资源预留


    在 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
    上一篇
    集群自动伸缩
    下一篇
    CCE 节点 CDS 扩容