|
| 1 | +--- |
| 2 | +layout: blog |
| 3 | +title: "Kubernetes v1.32: Memory Manager Goes GA" |
| 4 | +date: 2024-11-11 |
| 5 | +slug: memory-manager-goes-ga |
| 6 | +author: > |
| 7 | + [Talor Itzhak](https://github.com/Tal-or) (Red Hat) |
| 8 | +draft: true |
| 9 | +--- |
| 10 | + |
| 11 | +With Kubernetes 1.32, the memory manager has officially graduated to General Availability (GA), |
| 12 | +marking a significant milestone in the journey toward efficient and predictable memory allocation for containerized applications. |
| 13 | +Since Kubernetes v1.22, where it graduated to beta, the memory manager has proved itself reliable, stable and a good complementary feature for the |
| 14 | +[CPU Manager](/docs/tasks/administer-cluster/cpu-management-policies/). |
| 15 | + |
| 16 | +As part of kubelet's workload admission process, |
| 17 | +the memory manager provides topology hints |
| 18 | +to optimize memory allocation and alignment. |
| 19 | +This enables users to allocate exclusive |
| 20 | +memory for Pods in the [Guaranteed](/docs/concepts/workloads/pods/pod-qos/#guaranteed) QoS class. |
| 21 | +More details about the process can be found in the memory manager goes to beta [blog](/blog/2021/08/11/kubernetes-1-22-feature-memory-manager-moves-to-beta/). |
| 22 | + |
| 23 | +Most of the changes introduced since the Beta are bug fixes, internal refactoring and |
| 24 | +observability improvements, such as metrics and better logging. |
| 25 | + |
| 26 | +## Observability improvements |
| 27 | + |
| 28 | +As part of the effort |
| 29 | +to increase the observability of memory manager, new metrics have been added |
| 30 | +to provide some statistics on memory allocation patterns. |
| 31 | + |
| 32 | + |
| 33 | +* **memory_manager_pinning_requests_total** - |
| 34 | +tracks the number of times the pod spec required the memory manager to pin memory pages. |
| 35 | + |
| 36 | +* **memory_manager_pinning_errors_total** - |
| 37 | +tracks the number of times the pod spec required the memory manager |
| 38 | +to pin memory pages, but the allocation failed. |
| 39 | + |
| 40 | + |
| 41 | +## Improving memory manager reliability and consistency |
| 42 | + |
| 43 | +The kubelet does not guarantee pod ordering |
| 44 | +when admitting pods after a restart or reboot. |
| 45 | + |
| 46 | +In certain edge cases, this behavior could cause |
| 47 | +the memory manager to reject some pods, |
| 48 | +and in more extreme cases, it may cause kubelet to fail upon restart. |
| 49 | + |
| 50 | +Previously, the beta implementation lacked certain checks and logic to prevent |
| 51 | +these issues. |
| 52 | + |
| 53 | +To stabilize the memory manager for general availability (GA) readiness, |
| 54 | +small but critical refinements have been |
| 55 | +made to the algorithm, improving its robustness and handling of edge cases. |
| 56 | + |
| 57 | +## Future development |
| 58 | + |
| 59 | +There is more to come for the future of Topology Manager in general, |
| 60 | +and memory manager in particular. |
| 61 | +Notably, ongoing efforts are underway |
| 62 | +to extend [memory manager support to Windows](https://github.com/kubernetes/kubernetes/pull/128560), |
| 63 | +enabling CPU and memory affinity on a Windows operating system. |
| 64 | + |
| 65 | +## Getting involved |
| 66 | + |
| 67 | +This feature is driven by the [SIG Node](https://github.com/Kubernetes/community/blob/master/sig-node/README.md) community. |
| 68 | +Please join us to connect with the community |
| 69 | +and share your ideas and feedback around the above feature and |
| 70 | +beyond. |
| 71 | +We look forward to hearing from you! |
| 72 | + |
0 commit comments