Kubernetes v1.32: 内存管理器正式发布

随着 Kubernetes 1.32 的发布,内存管理器正式升级到通用可用性(GA),标志着容器化应用高效且可预测内存分配之旅的一个重要里程碑。自 Kubernetes v1.22 升级到 Beta 以来,内存管理器已被证明是可靠、稳定且对 CPU 管理器 的良好补充特性。

作为 kubelet 工作负载准入过程的一部分,内存管理器提供拓扑提示以优化内存分配和对齐。这使得用户能够为 Guaranteed QoS 类别的 Pod 分配独占内存。有关此过程的更多详细信息可在内存管理器进入 Beta 阶段的博客中找到。

自 Beta 以来引入的大多数更改都是 bug 修复、内部重构和可观察性改进,例如指标和更好的日志记录。

可观察性改进

作为提高内存管理器可观察性努力的一部分,新增了指标以提供内存分配模式的一些统计信息。

  • memory_manager_pinning_requests_total - 跟踪 pod spec 要求内存管理器固定内存页面的次数。

  • memory_manager_pinning_errors_total - 跟踪 pod spec 要求内存管理器固定内存页面但分配失败的次数。

提高内存管理器的可靠性和一致性

kubelet 不保证在重启后准入 Pod 的顺序。

在某些边缘情况下,这种行为可能导致内存管理器拒绝一些 Pod,在更极端的情况下,可能导致 kubelet 在重启时失败。

之前,beta 实现缺乏某些检查和逻辑来防止这些问题。

为了使内存管理器达到通用可用性 (GA) 就绪状态,对算法进行了一些细微但关键的改进,提高了其鲁棒性和边缘情况处理能力。

未来发展

Topology Manager 的未来总体上有更多内容,尤其是内存管理器。值得注意的是,正在进行的工作旨在将内存管理器支持扩展到 Windows,以便在 Windows 操作系统上实现 CPU 和内存亲和性。

参与进来

此特性由 SIG Node 社区推动。请加入我们,与社区建立联系,并分享你关于上述特性及其他方面的想法和反馈。我们期待你的来信!