工作程序节点资源保留量

了解工作节点资源预留情况,有助于您规划集群容量并排查 Pod 调度问题。

IBM Cloud Kubernetes Service 会设置计算资源保留量,用于限制每个工作程序节点上的可用计算资源。 预留的内存、CPU 资源和进程 ID(PID)无法被工作节点上的 Pod 使用,这会减少每个工作节点上可分配的资源。 最初部署 pod 时,如果工作程序节点没有足够的可分配资源,部署会失败。 此外,如果 Pod 超出了工作节点对内存和 CPU 的资源限制,这些 Pod 将会被驱逐。 在 Kubernetes 中,该限制被称为 “硬驱逐阈值”。 对于超过 PID 限制的 pod,这些 pod 会收到尽可能多的可分配 PID,但不会根据 PID 驱逐它们。

何时检查资源储备

在以下情况下检查工作节点资源预留情况:

  • 规划集群容量并确定所需的 worker 节点数量
  • 排查 Pod 调度失败或驱逐问题
  • 计算工作负载的可用资源
  • 确定是否需要为集群添加更多工作节点

如果可用的 PID、CPU 或内存少于工作节点预留的数量,Kubernetes 将开始驱逐 Pod,以恢复足够的计算资源和 PID。 如果有其他工作程序节点可用,那么 pod 会重新安排到该工作程序节点上。 如果您的 Pod 频繁被驱逐,请向集群中添加更多工作节点,或者为 Pod 设置 资源限制

了解资源储备等级

在您的工作节点上预留的资源取决于该工作节点自带的 PID 数量、CPU 核心数和内存容量。《 IBM Cloud Kubernetes Service 》中定义了 PID、CPU 和内存的各级别,如下表所示。 如果您的工作节点配备了多层级的计算资源,则每个层级都会预留一定比例的 PID、CPU 和内存资源。

群集还有进程 ID (PID) 保留和限制,以防止 pod 使用过多的 PID,或确保 kubelet 和其他 IBM Cloud Kubernetes Service 系统组件有足够的 PID。 如果达到 PID 保留或限制,Kubernetes 不会创建或分配新的 PID,直到有足够的进程被移除以释放现有 PID。 工作节点上的 PID 总量大约相当于工作节点上每 GB 内存 8,000 个 PID。 例如,一个拥有 16 GB 内存的工作节点大约有 128,000 个 PID (16 × 8,000 = 128,000)。

要查看您的工作节点当前使用了多少计算资源,请运行 kubectl top node

工作程序节点内存保留量(按层)。 该表格的第一列显示了内存层级,第二列显示了预留的百分比或数量,其余列则给出了两种不同工作节点规格的计算示例。
本表描述了工作节点的内存预留情况。 第一列列出了内存层级,第二列显示了为每个层级预留的百分比或容量,其余列则提供了针对 16 GB 工作节点和 256 GB 工作节点的计算示例。
内存层 保留的 % 或保留量 b3c.4x16 工作节点(16 GB)示例 mg1c.28x256 工作程序节点 (256 GB) 示例
前 4 GB (0 - 4 GB) 25% 的内存 1 GB 1 GB
接下来 4 GB (5 - 8 GB) 20% 的内存 0.8 GB 0.8 GB
接下来 8 GB (9 - 16 GB) 10% 的内存 0.8 GB 0.8 GB
接下来 112 GB (17 - 128 GB) 6% 的内存 不适用 6.72 GB
剩余 GB (129 GB+) 2% 的内存 不适用 2.54 GB
kubelet 驱逐 的额外储备金 100 MB 100 MB(固定量) 100 MB(固定量)
总保留量 (变化) 2.7 GB,共 16 GB 11.96 GB,共 256 GB
工作程序节点 CPU 保留量(按层)。 该表格的第一列显示了 CPU 层级,第二列显示了预留的百分比或数量,其余列则给出了两种不同工作节点规格的计算示例。
本表描述了工作节点的 CPU 预留资源。 第一列列出了 CPU 层级,第二列显示了为每个层级预留的百分比或数量,其余列则提供了 4 核工作节点和 28 核工作节点的计算示例。
CPU 层 保留的 % 或保留量 b3c.4x16 工作节点(四核)示例 mg1c.28x256 工作程序节点(28 个核心)示例
第 1 个核心(核心 1) 6% 的核心 0.06 的核心 0.06 的核心
接下来 2 个核心(核心 2 - 3) 1% 的核心 0.02 的核心 0.02 的核心
接下来 2 个核心(核心 4 - 5) 0.5% 的核心 0.005 的核心 0.01 的核心
剩余核心(核心 6 及更多核心) 0.25% 的核心 不适用 0.0575 的核心
总保留量 (变化) 0.085 个核心,共 4 个核心 0.1475 个核心,共 28 个核心
按层级划分的 worker 节点 PID 预留情况。 该表格的第一列显示了总 PID 范围,第二列显示了已预留的比例,第三列显示了可供 Pod 使用比例,其余行则给出了两种不同工作节点规格的计算示例。
本表描述了工作节点的 PID 保留情况。 第一列列出了 PID 范围的总数,第二列显示了已预留的百分比,第三列显示了可供 Pod 使用 的百分比,其余行则分别给出了拥有 126,878 个 PID 的工作节点和拥有 2,062,400 个 PID 的工作节点的计算示例。
PID 总数 保留的 % 可用于吊舱的百分比
< 200,000 20% PID 35% PID
200,000 - 499,999 10% PID 40% PID
≥ 500,000 5% PID 45% PID
b3c.4x16 工人节点:126 878 个 PID 25 376 个 PID (20%) 44,407 个 Pids (35%)
mg1c.28x256 工人节点:2 062 400 个 PID 103 120 个 PID (5%) 928 085 个 PID (45%)
工作节点的磁盘临时存储空间预留量。 该表格的第一列显示基础设施提供商,第二列显示磁盘类型,第三列显示已预留磁盘的百分比。
本表描述了工作节点的磁盘临时存储空间预留情况。 第一列列出了基础设施提供商(Classic 或 VPC),第二列显示了使用的磁盘,第三列显示了两种提供商均预留了 10% 的磁盘空间。
基础架构提供者 磁盘 预留磁盘百分比
经典 辅助磁盘 10%
VPC 引导磁盘 10%

工人节点值样本仅供参考。 实际使用情况可能略有不同。