LearnGlossary

What is headroom in Kubernetes?

Updated 25 October 2026 · Published by Zoorik

Kubernetes headroom is spare node capacity you keep free on purpose. New pods start in it at once, not waiting in Pending for a new node. The Kubernetes docs call this node overprovisioning.

With headroom, the new pod runs at once and the placeholder waits Illustration with no times shown. Two timelines on one shared time axis. Without headroom: New pod created, then the pod is Pending until Autoscaler adds a node, then Pod runs. With headroom: New pod created, and just after it the span Pod runs in the freed space. Under it, a second track starts at Placeholder pod removed and runs a Placeholder Pending span until Autoscaler adds a node, at the same point on the axis as in the row without headroom. With headroom, the new pod runs at once and the placeholder waits Without headroomNew pod createdAutoscaler adds a nodePendingPod runsWith headroomNew pod createdPod runs in the freed spacePlaceholder pod removedAutoscaler adds a nodePlaceholder Pendingtime
Illustration, with no times shown: the same new pod in a cluster without headroom and in one where placeholder pods hold it.

How a cluster keeps headroom

You hold the space with placeholder pods that do no work.

  • Their requests set the size: five pods of 0.1 CPU and 200 MiB hold 0.5 CPU and 1,000 MiB.
  • Their priority is negative. So when a real pod can’t fit, Kubernetes removes one first.
  • The placeholder goes Pending. Your autoscaler then adds a node.
  • By default, Cluster Autoscaler adds no nodes for pods below priority -10. Use -10 with it, not the Kubernetes docs’ -1000.

An example on AWS

The Amazon EKS guide calls headroom for Kubernetes on AWS a trade between speed and cost. In its example, you need a node every 30 seconds. EC2 takes 30 seconds to start one.

So one spare node saves 30 seconds of wait, for the cost of one extra EC2 instance. Comparing those two times is a simple Kubernetes headroom calculator.

Why it matters for your bill

  • Headroom in a Kubernetes cluster is capacity you pay for and keep empty. So your Kubernetes headroom policy is a cost choice.
  • Requests far above real use add nodes you never planned, since the scheduler places pods by requests.
  • Coral rebalances CPU and memory requests on AKS and EKS to match real use. Then the same pods fit on fewer nodes, and Coral drains the spare ones so your autoscaler can remove them.
  • The free assessment works out your own figure.

Read next: Cluster Autoscaler overprovisioning with placeholder pods

Sources: Kubernetes, “Overprovision Node Capacity For A Cluster” (opens in a new tab); Kubernetes Autoscaler, “Cluster Autoscaler FAQ” (opens in a new tab); Kubernetes, “Resource Management for Pods and Containers” (opens in a new tab); Amazon Web Services, “Cluster Autoscaler” (opens in a new tab) (Amazon EKS Best Practices Guide).

Find your own number

One line in your cloud console. One PDF report with your estimated saving at list price.

Estimate your saving

Talk to the builders

Thirty minutes with the people who build Coral.

Book a demo (opens in a new tab)

Or write to founders@zoorik.com