Kubernetes v1.32:記憶體管理器(Memory Manager)進入 GA 階段
隨著 Kubernetes 1.32 的釋出,記憶體管理器已正式進入通用可用性(GA)階段,這標誌著在為容器化應用實現高效且可預測的記憶體分配方面邁出了重要的一步。自 Kubernetes v1.22 升級到 Beta 版以來,記憶體管理器已經證明了其可靠性、穩定性,並且是 CPU 管理器 的一個很好的補充功能。
作為 kubelet 工作負載准入過程的一部分,記憶體管理器提供拓撲提示以最佳化記憶體分配和對齊。這使得使用者可以為 Guaranteed QoS 等級的 Pod 分配獨佔記憶體。關於此過程的更多詳細資訊,可以在記憶體管理器進入 Beta 階段的部落格文章中找到。
自 Beta 版本以來引入的大部分更改都是錯誤修復、內部重構和可觀測性改進,例如指標和更好的日誌記錄。
可觀測性改進
作為提高記憶體管理器可觀測性工作的一部分,新增了一些指標來提供記憶體分配模式的統計資料。
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 社群推動。歡迎加入我們,與社群聯絡,分享您對上述功能及其他方面的想法和反饋。我們期待您的聲音!