Developer Story
As a Developer, I want the kubelet on Windows hosts to reserve at least 2GiB of memory for system processes so that nodes remain healthy and are not over-provisioned when scheduling pods without limits.
Engineering Details
This change implements a memory reservation of 2GiB for system processes on Windows hosts running kubelet, following upstream recommendations. The commit ensures that even when pods are scheduled without explicit memory limits, the Windows node maintains sufficient memory for essential system operations.
https://kubernetes.io/docs/concepts/configuration/windows-resource-management/#resource-reservation
Required
Update the kubelet configuration for Windows to reserve a minimum of 2GiB for system processes.
Check that the reservation is enforced during pod scheduling to prevent over-provisioning.
Update the documentation to include details on the memory reservation settings and guidelines.
Nice to have
Implement e2e to check the successful application of the memory reservation.
Acceptance Criteria
Windows hosts running kubelet must reserve at least 2GiB of memory for system processes.
Pod scheduling should correctly account for the reserved memory, preventing node over-provisioning.
Documentation is updated with memory (and CPU) reservation guidelines
Manual verification to confirm that the memory reservation is active and that nodes remain healthy under varying workloads.
SystemReserved memory set to 2GiB