You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
节点运维
节点预留资源策略
复制全文
下载 pdf
节点预留资源策略
节点作为集群的重要部分,需要运行 Kubernetes 系统组件和资源。为了运行这些必要组件和资源,容器服务(VKE)需要占用一定的节点资源,保证业务稳定性。因此,您的节点资源总量与集群中可分配资源之间会存在差异。节点的规格越大,在节点上部署的 Pod 数量越多,从而节点需要预留更多资源。​
节点可分配资源​
节点可分配资源(Allocatable)是节点上可供 Pod 使用的资源量。节点总资源需要扣除 Kubernetes 组件和系统进程使用的预留资源,以及为触发节点压力驱逐预留的资源。​
计算公式如下:可分配资源(Allocatable)= 总资源(Capacity)− 预留资源(Reserved)− 驱逐阈值(Eviction Threshold)。​
  • 总资源(Capacity):节点的资源总量,对应节点信息中的Capacity字段。​
  • 预留资源(Reserved):为 Kubernetes 组件和节点系统进程预留的资源。具体计算方式,请参见 资源预留策略说明。​
  • 驱逐阈值(Eviction Threshold):为节点压力驱逐预留的资源。当节点可用资源低于该阈值时,kubelet 会驱逐部分 Pod。该资源由 kubelet 参数eviction-hard定义,详情请参见 配置节点 kubelet 参数。​
资源预留策略说明​
为保证节点稳定运行,VKE 会预留部分 CPU、内存和进程 ID(PID)资源,供 Kubernetes 组件及节点系统进程使用。包括为 Kubernetes 组件预留的 kube-reserved 资源,以及为节点系统进程预留的 system-reserved 资源。具体预留量,请参见下文 CPU 预留策略、内存预留策略、PID 预留策略。​
CPU 预留策略​
​
Kubernetes v1.32 及以上版本
Kubernetes v1.30 及以下版本
​
在 Kubernetes v1.32 及以上版本集群中,节点 CPU 预留策略按照节点 CPU Core 数分段累加计算:第 1 Core 按 6% 预留,第 2 Core 按 1% 预留,第 3~4 Core 各按 0.5% 预留,超过 4 Core 的部分每 Core 按 0.25% 预留。​
​​​
以 112 核节点为例,其 CPU 预留资源计算结果为:0.06 + 0.01 + 2 × 0.005 + 108 × 0.0025 = 0.35 Core。该预留资源将会平分给kube-reserved和system-reserved参数,即kube-reserved和system-reserved参数下的 CPU 预留值分别为 0.175 Core。​
​
内存预留策略​
​
Kubernetes v1.32 及以上版本
Kubernetes v1.30 及以下版本
​
在 Kubernetes v1.32 及以上版本集群中,节点内存预留量计算公式为 节点内存预留量 = min(11 MiB × MaxPods + 255 MiB, 节点内存 × 25%),即取11 MiB × MaxPods + 255 MiB和节点内存 × 25%两个计算结果中的较小值。其中:​
  • MaxPods:节点支持调度的最大 Pod 数量。若您自定义了 MaxPods,系统优先使用自定义值,否则使用系统默认值。详情请参见 配置节点池 Kubelet 参数。​
  • 节点内存:节点对应 ECS 规格实际可用的内存,单位为 MiB。​
​​​
以内存为 64 GiB、MaxPods 为 110 的节点为例:​
  • 计算结果 A:按 MaxPods 计算的预留上限为 11 MiB × 110 + 255 MiB = 1465 MiB。​
  • 计算结果 B:按节点内存计算的预留上限为 64 GiB × 25% = 16 GiB。​
两个计算结果中 A 数值较小,因此实际内存预留资源量为 1465 MiB。该预留资源将会平分给kube-reserved和system-reserved参数,即kube-reserved和system-reserved参数下的内存预留值分别为 732.5 MiB。​
注意​
  • 节点上的 Pod 实际可用的内存,除了减去kube-reserved和system-reserved参数中的内存预留值外,还需要减去eviction-hard驱逐门限值。eviction-hard参数默认在内存小于 300 MiB 时会驱逐节点上的 Pod,因此相当于节点上有 300 MiB 内存资源无法被 Pod 使用。如有需求,您可以更改eviction-hard取值门限值,详细操作请参见 配置节点 kubelet 参数。​
  • 在本例中,kube-reserved和system-reserved合计预留了 1465 MiB,若您未自定义过eviction-hard参数, 即该参数默认预留 300 MiB 内存,那么该规格的节点上实际可以分配给 Pod 的内存 = 64 GiB - 1465 MiB - 300 MiB ≈ 62.28 GiB​
​
PID 预留策略​
​
预留资源​
预留值(个)​
kube-reserved​
1000​
system-reserved​
1000​
​
注意事项​
  • 您可以通过 kube-reserved 和 system-reserved 参数自定义节点的 CPU 和内存预留资源量。自定义配置后,VKE 将按照您设置的值预留资源。详情请参见 配置节点池 kubelet 参数。​
  • 节点预留资源策略适用于 Kubernetes v1.20.15-vke.4 版本及以上的集群。​
  • 节点预留资源策略对新扩容的节点自动生效,无需手动配置。​
  • 因为节点预留资源策略的计算方式可能会造成节点的可分配资源变少,对于资源水位较高的节点,可能会触发节点压力驱逐,所以出于稳定性考虑,节点预留资源策略不会对已有节点自动生效。若需要对存量节点生效,您可以手动配置,详细操作,请参见 存量节点参数同步。​
最近更新时间:2026.11.02 21:16:07
这个页面对您有帮助吗?
有用
有用
无用
无用