全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

集群资源预留

最近更新时间:2024-01-05 09:58:04

节点的部分资源需要运行一些必要的Kubernetes系统组件和Kubernetes系统资源,使该节点可作为您的集群的一部分。 为了运行这些必要组件和资源,容器服务需要占用一定的节点资源,保证业务稳定性。因此,您的节点资源总量(Capacity)与节点在Kubernetes中的可分配资源数量(Allocatable)之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,所以Kubernetes自身需预留更多的资源。

为了保证节点的稳定性,KCE集群节点上会根据节点的规格预留内存、CPU、进程 ID(PID)资源给Kubernetes的相关组件(Kubelet、Kube-proxy、Containerd以及Docker等)。

说明

当节点上所有Pod消耗的内存上涨时,可能存在下列两种行为:

  1. 当节点可用内存低于驱逐阈值时,将会触发Kubelet驱逐Pod。关于Kubernetes中驱逐阈值的相关信息,请参见节点压力驱逐

  2. 如果节点在Kubelet回收内存之前触发操作系统内存不足事件(OOM),系统会终止容器,但是与Pod驱逐不同,Kubelet会根据Pod的RestartPolicy重新启动它。

计算公式

用户集群节点资源预留的计算规则为:

Allocatable = Capacity - Reserved - Eviction Threshold

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

注意:

Allocatable :节点上可分配给pod的资源。

Capacity :Node的硬件资源总量。

Reserved :节点上预留给系统组件的资源。

Eviction Threshold:节点的驱逐阈值。

公式说明:

KCE对节点内存的预留规则

内存总量

预留资源

内存总量 <= 4 GiB

内存总量 * 25%

4 GiB < 内存总量 <= 8 GiB

4 GiB 25% + (内存总量 - 4) GiB 20%

8 GiB < 内存总量 <= 16 GiB

4 GiB 25% + (8-4) GiB 20% + (内存总量 - 8) GiB * 10%

16 GiB < 内存总量 <= 128 GiB

4 GiB 25% + (8-4) GiB 20% + (16-8) GiB 10% + (内存总量 - 16) GiB 6%

内存总量 > 128 GiB

4 GiB 25% + (8-4) GiB 20% + (16-8) GiB 10% + (128-16) GiB 6% + (内存总量 - 128) GiB * 2%

示例

以 ecs.g2i.28xlarge 规格的节点为例,该节点内存为 448 GiB,则内存预留资源计算结果为:4 × 25% + (8-4) × 20% + (16-8) × 10% + (128-16) × 6% + (448-128) × 2% = 15.72 GiB

KCE对节点CPU的预留规则

CPU 总量

预留资源

CPU 总量 <= 4 Core

100 milliCore = 0.1 Core

4 Core < CPU 总量 <= 64 Core

0.1 Core + (CPU 总量–4) Core * 2.5%

64 Core < CPU 总量 <= 128 Core

0.1 Core + (64-4) Core 2.5% + (CPU 总量–64) Core 1.25%

CPU 总量 > 128 Core

0.1 Core + (64-4) Core 2.5% + (128-64) Core 1.25% + (CPU 总量–128) Core * 0.5%

示例

以 ecs.g2i.28xlarge 规格的节点为例,该节点 CPU 为 112 Core,则 CPU 预留资源计算结果为:0.1 + (64-4) × 2.5% + (112-64) × 1.25% = 2.2 Core

节点 PID 预留策略

预留资源

预留值(个)

Kube-reserved

1000

System-reserved

1000

Kubelet驱逐所用资源预留

KCE对每个节点预留了额外的100Mi给Kubelet驱逐所用,常见配置的资源预留列表如下:

  • CPU:

节点总量/单位:核

2

4

8

16

32

节点预留量/单位:核

0.07

0.08

0.09

0.11

0.15

  • Memory:

节点总量/单位:Gib

4

8

16

32

64

节点预留量/单位:Mib

1024

1843

2662

3645

5611

修改节点预留资源

用户可以通过自定义 Kubelet 参数的方式来修改 kube-reserved 以达到修改节点预留资源的目的,建议给节点组件预留充足的 CPU 和内存资源来保证节点的稳定性。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈