Kubernetes v1.36:利用内存 QoS 提供分层... 笔记

Kubernetes v1.36:利用内存 QoS 提供分层内存保护

Kubernetes v1.36 引入了对内存 QoS 功能的更新,该功能采用 cgroup v2 以实现更优的容器内存管理。v1.36 的关键更新包括按需启用内存预留,并根据 Pod QoS 类别提供分层保护。Guaranteed Pod 现在获得硬性内存保护(memory.min),而 Burstable Pod 获得软性保护(memory.low)。BestEffort Pod 仍保持完全可回收且无特殊保护。新的 memoryReservationPolicy 允许分别控制节流和预留。系统提供可观测性指标,用于监控节点上 memory.min 和 memory.low 的使用情况。内核版本检查会在内核早于 5.9 时向用户发出警告,以避免潜在的活锁问题。该实现利用了 memory.maxmemory.minmemory.lowmemory.high 等 cgroup v2 接口。节点内存分配由 kubelet 管理,确保每个 Pod 及各类 QoS 获得适当的保护。该功能可通过 kubelet 配置启用,其中 TieredReservation 为关键设置。推荐的前置条件为:Kubernetes v1.36 或更高版本、支持 cgroup v2 的 Linux 系统以及 5.9 或更高版本的内核。用户可参与 SIG Node 社区以提供反馈和贡献。