You need to enable JavaScript to run this app.
导航

节点预留资源策略

最近更新时间2023.04.13 15:48:45

首次发布时间2022.10.27 11:16:26

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

为了保证节点的稳定性,容器服务会根据节点对应的云服务器(ECS)规格,在节点上预留内存、CPU、进程 ID(PID)资源给 Kubernetes 的相关组件(kubelet、kube-proxy、containerd )使用。具体的内存、CPU、PID 资源预留策略如下所示。

节点 CPU 预留策略

CPU 总量预留资源
CPU 总量 <= 4 Core100 milliCore = 0.1 Core
4 Core < CPU 总量 <= 64 Core0.1 Core + (CPU 总量–4) Core * 2.5%
64 Core < CPU 总量 <= 128 Core0.1 Core + (64-4) Core * 2.5% + (CPU 总量–64) Core * 1.25%
CPU 总量 > 128 Core0.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

节点内存预留策略

内存总量预留资源
内存总量 <= 4 GiB内存总量 * 25%
4 GiB < 内存总量 <= 8 GiB4 GiB * 25% + (内存总量 - 4) GiB * 20%
8 GiB < 内存总量 <= 16 GiB4 GiB * 25% + (8-4) GiB * 20% + (内存总量 - 8) GiB * 10%
16 GiB < 内存总量 <= 128 GiB4 GiB * 25% + (8-4) GiB * 20% + (16-8) GiB * 10% + (内存总量 - 16) GiB * 6%
内存总量 > 128 GiB4 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

节点 PID 预留策略

预留资源预留值(个)
kube-reserved1000
system-reserved1000

注意事项

  • 该预留策略仅适用于 v1.20.15-vke.4 版本及以上的集群。
  • 该预留策略对新扩容的节点自动生效,无需手动配置。
  • 出于稳定性考虑,该预留策略不会对已有节点自动生效。因为该资源预留的计算方式可能会造成节点的可分配资源变少,对于资源水位较高的节点,可能会触发节点压力驱逐。