Kubernetes v1.32:内存管理器正式发布
随着 Kubernetes 1.32 的发布,内存管理器正式升级为通用可用性 (GA),这标志着容器化应用程序高效且可预测的内存分配的旅程中一个重要的里程碑。自从 Kubernetes v1.22 升级到 Beta 版以来,内存管理器已经证明了其可靠性、稳定性和作为 CPU 管理器 的良好补充功能。
作为 kubelet 工作负载准入过程的一部分,内存管理器提供拓扑提示,以优化内存分配和对齐。这使得用户可以在 Guaranteed QoS 类中为 Pod 分配独占内存。有关该过程的更多详细信息,请参阅内存管理器进入 Beta 版的 博客。
自 Beta 版以来引入的大多数更改都是错误修复、内部重构和可观察性改进,例如指标和更好的日志记录。
可观察性改进
作为提高内存管理器可观察性的一部分,添加了新的指标,以提供有关内存分配模式的一些统计信息。
memory_manager_pinning_requests_total - 跟踪 pod spec 要求内存管理器固定内存页面的次数。
memory_manager_pinning_errors_total - 跟踪 pod spec 要求内存管理器固定内存页面但分配失败的次数。
提高内存管理器的可靠性和一致性
在重启或重新启动后准入 Pod 时,kubelet 不保证 Pod 的顺序。
在某些极端情况下,此行为可能导致内存管理器拒绝某些 Pod,在更极端的情况下,它可能导致 kubelet 在重启时失败。
以前,Beta 版的实现缺少某些检查和逻辑来防止这些问题。
为了使内存管理器稳定以达到通用可用性 (GA) 就绪状态,对算法进行了小的但至关重要的改进,从而提高了其鲁棒性和对极端情况的处理能力。
未来发展
未来,拓扑管理器总体而言,特别是内存管理器,还有更多发展。值得注意的是,正在进行的工作正在扩展 对 Windows 的内存管理器支持,从而在 Windows 操作系统上启用 CPU 和内存亲和性。
参与其中
此功能由 SIG Node 社区驱动。请加入我们,与社区联系,并分享您对上述功能及其他方面的想法和反馈。我们期待着您的来信!