OpsCanary
kubernetesschedulingPractitioner

Mastering Kubernetes v1.37: Scheduler Preemption for In-Place Pod Resize

5 min read Kubernetes BlogSep 10, 2026Reviewed for accuracy
Share
PractitionerHands-on experience recommended

In Kubernetes, managing resources efficiently is crucial, especially as workloads scale. The new scheduler preemption for in-place pod resize feature addresses a common pain point: when nodes are fully utilized, critical pods may not be able to resize due to lack of available resources. By allowing the scheduler to preempt lower-priority workloads, Kubernetes ensures that essential applications can adapt dynamically to changing demands.

This feature integrates directly into the kube-scheduler's core scheduling cycle. When a pod requests an in-place resize and is marked with a Deferred status, the kube-scheduler actively monitors these pods. It identifies lower-priority 'victim' pods on the same node and initiates their graceful eviction, effectively freeing up the necessary capacity. To enable this feature, you must set the InPlacePodVerticalScalingSchedulerPreemption feature gate to true in your cluster configuration. Additionally, you can control preemption behavior on specific nodes using the spec.podPreemptionPolicy field.

In production, ensure your cluster is running Kubernetes v1.37 or later, and that all control plane components have the feature gate enabled. Be cautious with the node images you use; they must correspond to Kubernetes v1.37 or later. This feature is still in alpha, so expect potential instability and be prepared for edge cases where preemption may not behave as expected.

Key takeaways

  • Enable the InPlacePodVerticalScalingSchedulerPreemption feature gate to allow preemption for critical workloads.
  • Monitor pods with a Deferred resize status to manage resource allocation effectively.
  • Use the spec.podPreemptionPolicy to customize preemption behavior on specific nodes.

Why it matters

This feature significantly enhances resource management, allowing critical applications to scale even under heavy load. It helps prevent downtime and improves overall application reliability in production environments.

Code examples

YAML
# kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
  InPlacePodVerticalScalingSchedulerPreemption: true
Bash
kind create cluster --config kind-config.yaml --image kindest/node:v1.37.0
Bash
kubectl get nodes -o custom-columns=NAME:.metadata.name,ALLOCATABLE_CPU:.status.allocatable.cpu

When NOT to use this

The official docs don't call out specific anti-patterns here. Use your judgment based on your scale and requirements.

Want the complete reference?

Read official docs

Test what you just learned

Quiz questions written from this article

Take the quiz →
Linux FoundationSponsor

Industry-standard certifications built by the people behind Linux and Kubernetes. Earn the CKA — the gold standard Kubernetes administrator cert. OpsCanary readers get 30% off year-round with code OPSCANARY3.

Get CKA certified →

Get the daily digest

One email. 5 articles. Every morning.

No spam. Unsubscribe anytime.