Kubernetes v1.37: Scheduler Preemption for In-Place Pod Resize (Alpha)
Kubernetes v1.35 introduced in-place Pod resizing, allowing dynamic adjustments to CPU and memory without restarts. However, scaling up a Pod on a fully utilized node could lead to a "Deferred" status if insufficient capacity existed. This meant the Pod would wait indefinitely for resources to become available. To address this, Kubernetes v1.37 introduces scheduler preemption for in-place Pod resizing, currently in Alpha. This feature enables the Kubernetes scheduler to proactively free up node capacity. If a running Pod's in-place resize request exceeds available resources, the scheduler can preempt lower-priority Pods. This ensures critical applications can scale up even on busy nodes. The preemption is localized to the Pod's current node, targeting eligible lower-priority workloads. This allows cluster operators to maximize resource utilization by bin-packing lower-priority tasks. Without this, operators faced a dilemma between underutilization or risking critical application scaling failures. The feature integrates with the scheduler's existing tracking mechanisms. It distinguishes resize preemption from standard Pod placement preemption. Resource reservations are handled safely to prevent race conditions during resizing. The feature requires Kubernetes v1.37 or later and the InPlacePodVerticalScalingSchedulerPreemption feature gate enabled. Administrators can disable resize preemption for specific nodes using the podPreemptionPolicy field.
podPreemptionPolicyfield.