Kubernetes v1.32:内存管理器进阶至 GA

随着 Kubernetes 1.32 的发布,内存管理器已进阶至正式发布(GA), 这标志着在为容器化应用实现高效和可预测的内存分配的旅程中迈出了重要的一步。 内存管理器自 Kubernetes v1.22 进阶至 Beta 后,其可靠性、稳定性已得到证实, 是 CPU 管理器的一个良好补充特性。

作为 kubelet 的工作负载准入过程的一部分,内存管理器提供拓扑提示以优化内存分配和对齐。这使得用户能够为 Guaranteed QoS 类的 Pod 分配独占的内存。 有关此过程的细节,参见博客:内存管理器进阶至 Beta

自 Beta 以来引入的大部分变更是修复 Bug、内部重构以及改进可观测性(例如优化指标和日志)。

改进可观测性

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

  • memory_manager_pinning_requests_total - 跟踪 Pod 规约要求内存管理器锁定内存页的次数。

  • memory_manager_pinning_errors_total - 跟踪 Pod 规约要求内存管理器锁定内存页但分配失败的次数。

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

kubelet 不保证在 Pod 重启或重新引导后准入 Pod 的顺序。

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

以前,Beta 实现缺乏某些检查和逻辑来防止这些问题的发生。

为了使内存管理器更为稳定,以便为进阶至正式发布(GA)做好准备, 我们对算法进行了小而美的改进,提高了其稳健性和对边缘场景的处理能力。

未来发展

总体而言,未来对拓扑管理器(Topology Manager),特别是内存管理器,会有更多特性推出。 值得一提的是,目前的工作重心是将内存管理器支持扩展到 Windows, 使得在 Windows 操作系统上实现 CPU 和内存亲和性成为可能。

参与其中

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