LearnGlossary

What is VPA (Vertical Pod Autoscaler)?

Updated 25 October 2026 · Published by Zoorik

VPA in Kubernetes is the Vertical Pod Autoscaler, which sets the CPU and memory requests of a workload’s pods to match real use. You install it separately, with a metrics source such as Metrics Server.

What is Vertical Pod Autoscaler used for

It sizes pods up or down from real use, with three parts:

  • Recommender: works out a target from current and past use
  • Updater: evicts or resizes pods that are far off
  • Admission controller: sets the target on new pods

Main update modes:

  • Off: recommend only
  • Initial: set requests only at pod creation
  • Recreate, the default: evict pods that are far off
  • InPlaceOrRecreate: resize without a restart, or evict if that fails (AKS 1.34 or later)

The Vertical Pod Autoscaler on AKS is preconfigured in AKS Automatic and optional in AKS Standard. The AKS docs don’t recommend using it with the Horizontal Pod Autoscaler (HPA), which scales on the same CPU and memory use.

A Kubernetes VPA example

In the VPA quickstart, two hamster pods each ask for 100 millicores of CPU (100m). They try to use slightly above 500m. After about 5 minutes, they should get a higher CPU request.

Both hamster pods use over 500m on a 100m request, so VPA raises it Illustration of the VPA quickstart for one of its 2 hamster pods, two bars on one shared CPU scale from 0 to 1,000m, which is 1 CPU. CPU request: a bar to 100m. Real use: a bar to 500m, labelled slightly above 500m, well past a dashed line at the 100m request. An arrow points right from the end of the 100m request bar, labelled After about 5 minutes: a higher CPU request. The arrow shows the direction only, because the quickstart gives no new value. Both hamster pods use over 500m on a 100m request, so VPA raises it CPU request100mReal useslightly above 500mAfter about 5 minutes: a higher CPU request0100m500m1,000m
Illustration of the VPA quickstart, per hamster pod: use is drawn at 500m because the quickstart says only slightly above, and the arrow shows direction only because it gives no new request value.

Why it matters for your bill

  • Requests set how many pods fit per node, so how many nodes you pay for.
  • Smaller requests reduce the bill only once the same pods fit on fewer nodes.
  • Bigger ones can need more nodes.

Coral rebalances CPU and memory requests on AKS and EKS to match real use. It drains spare nodes so your autoscaler can remove them, and works with your HPA.

The free assessment works out your own figure.

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