VPA right-sizes your pods
DevZero does it without touching them

VPA's Auto mode evicts pods. Its Recommendation mode requires manual application. DevZero rightsizes continuously, applies via live migration, and shows you the dollar value of every change; within policy guardrails you control.

VPA

Pod eviction on resize

Auto mode kills and restarts pods to apply new resource values

Conflicts with HPA

VPA and HPA targeting the same workload is officially unsupported

No policy controls

No way to scope which workloads get resized or how aggressively

No cost projections

Recommendations have no dollar value — you can't prioritize them

No node optimization

Workloads are rightsized but underlying node waste is untouched

Live migration, no restarts

CRIU checkpoint/restore resizes running workloads without eviction

HPA-aware scaling

Replica count adjustments respect existing HPA targets and multipliers

Policy-gated changes

Conservative, balanced, or aggressive modes — nothing applied without a rule

Dollar savings per recommendation

Every WorkloadRecommendation ships with a projected $/month saving

Node consolidation included

Node Operator drains underutilized nodes and right-sizes instance types

Companies who slashed their Kubernetes
spend
using DevZero

DATABAHN
Starburst
Fi
Outerbounds
Codilas
personality pool
Onnitech
OpenObserve
Parsimo
Dentira
DATABAHN
Starburst
Fi
Outerbounds
Codilas
personality pool
Onnitech
OpenObserve
Parsimo
Dentira

What VPA does well and where it stops

VPA monitors CPU and memory usage and recommends updated resource requests. The gap is in how it applies them. Every update evicts the pod, waits for the scheduler to recreate it with new values, and fires the admission webhook restart cycle. For StatefulSets or Java heaps, that eviction is a multi-minute outage. And throughout all of it, VPA has no concept of node cost, bin packing efficiency, or what rightsizing actually saves your team in dollars.

Availability during VPA update
Serving
Evicted + recreating (downtime)
New pod online
pod-api-7x
Healthy
VPA watching
CPU requested80m / 340m
4x over-provisioned
Recommender fires
terminated
Evicted
Pod evicted
Updater kills pod in Recreate mode
Scheduler wait begins
Node check · image pull · init containers
Webhook injects
pod-api-9f
Restarted
CPU now320m
New pod, new name, new state
Connections lost. State reset.

Every VPA recommendation that touches a running pod in Recreate mode triggers this full cycle. For StatefulSets with large volumes or Java heaps, the scheduler wait alone can run several minutes.

Before DevZero

Running

pod-api-7x

CPU340m actual demand
80m requested+260m gap
MEMORY480Mi actual demand
128Mi requested+352Mi gap
DevZero

After DevZero

Still running

pod-api-7x

CPU320m P95
320m requestedmatched
MEMORY480Mi actual demand
512Mi requestedzero waste
Throttling risk: resource gap
Correctly sized: zero throttling

In-place rightsizing no restart required

DevZero applies CPU and memory changes directly to running pods via cgroup v2. No eviction, no scheduler wait, no dropped connections. It does not write to the CPU metrics HPA reads as a scaling signal, so both autoscalers run cleanly on the same deployment. Rightsized pods then consolidate onto fewer nodes, with savings surfaced per namespace, team, and workload in real time.

Three gaps VPA was not built to close

These are the constraints teams hit in production, not edge cases.

pod-api · StatefulSet

VPA

req

DevZero

req

pod-api-7x → pod-9f

evicted

pod-api-7x same pod

running

Stateful workload safety

VPA evicts pods to apply new resource values. For StatefulSets with large volumes or Java heaps, each eviction is a multi-minute outage. DevZero resizes in place with no disruption.

no attribution$340 saved
$300$200$100$0
VPA
Monthly spend by namespace
DevZero
per namespace and team

Cloud cost visibility

VPA has no concept of node cost or cloud spend. It optimizes resource requests, not dollars. DevZero maps every rightsizing decision to cost reduction by namespace and team.

HPA autoscaler pairing
with VPAwith DevZero
HPA
VPA
HPA
DevZero
CPU metric conflict
no metric interference
safe alongside HPA

HPA conflict avoidance

Running VPA and HPA on the same workload creates a CPU feedback loop. DevZero applies vertical changes without touching the metrics HPA reads, so both run cleanly.

What DevZero adds that VPA cannot

The controls your team actually needs, not a dashboard that requires a PhD to interpret.

Before
80m
No restart
fired
After
320m

CPU and memory update on the running pod via cgroup. Changes land in under 30 seconds. No eviction, no scheduler cycle.

P95 forecast
$300$200$100$0
MonTueWedThuFriSat

XGBoost models forecast P90/P95 usage 24 hours ahead. Pods consolidate onto fewer nodes before over-provisioning accumulates.

H100
L40
V100
A100

DevZero targets GPU-specific resources

35%

GPU utilization: 35% actual vs 100% requested

65% idle — reclaimed automatically

DevZero targets GPU-specific resources across H100, L40, V100, and A100. GPU jobs consuming a fraction of their request are reclaimed automatically.

VPA vs DevZero at a glance

DevZero complements Karpenter. Every row marked unsupported for VPA is a layer DevZero adds on top.

Capability
DevZero
VPA
CPU and memory rightsizing
In-place resize (no pod restart)
HPA compatibility
Live migration for stateful workloads
GPU rightsizing
Node consolidation and bin-packing
Extended workload support
~
Policy governance
Cost visibility and attribution
Security scanning
Installation model
~
Multi-cloud support
~

What our customers say

Databahn logo

We were essentially able to reduce the cost of that cluster by about 75%. On AWS, DevZero demonstrated they could achieve significantly higher savings than we initially thought possible.

Mihir Nair

Mihir Nair

Head of Architecture, Databahn

Frequently asked questions

Most clusters are overprovisioned.Let's prove yours is.

Run a free assessment to identify overprovisioned workloads, idle capacity, and your potential savings, in minutes.

Optimize now