PricingPricingDocsDocsBlogBlogBook a demoBook a demoCompanyCompany (opens in a new tab)
Product
DocsAPI ReferencePricingConsole DemoBlogCompany
Start Freev3.4.7
Wave Sizing

Realtime Resizing

Applies Smart Sizing recommendations automatically every 10 minutes, by resizing running Pods in place or by patching the workload spec.

The challenge

VPA changes a request by 10%, and the Pod is evicted to apply it

Kubernetes VPA docs (quickstart and flags); kubernetes.io, Resize CPU and Memory Resources assigned to Containers.

Changing a Pod's requests used to mean deleting the Pod and creating a replacement (kubernetes.io).

VPA's default update mode, Recreate, applies a new request by evicting the Pod once the change passes its 10% update threshold. Its InPlaceOrRecreate mode tries an in-place resize first and evicts when that fails (VPA docs).

Kubernetes can now resize CPU and memory in a running Pod. The feature is on by default from Kubernetes 1.33 (kubernetes.io).

Evicted and replaced, then resized in placeWithout WaveWith Waveevicted, new Podsame Pod, resized
Without Wave
VPA, default Recreate mode: the Pod is evicted and replacedCPU requestPod running500mnew request450mPod APod Bevicted
In its default Recreate mode, VPA applies a new request by evicting the Pod once the change passes its 10% update threshold. The controller then creates a new Pod with the new request.
With Wave
Wave In-Place mode: the same Pod gets the new requestCPU requestPod running500mnew request450mPod Aresized in place
Wave In-Place mode calls the resize subresource on the running Pod. The Pod keeps running with the new request. If the node lacks room, Wave records the rejection and retries in the next 10-minute cycle. It does not evict the Pod.

Recreate mode and the 10% update threshold: Kubernetes VPA docs. Resizing a running Pod: kubernetes.io. In-Place mode and the 10-minute cycle: Wave Sizing docs. The 500m and 450m values and the times are illustrative.

How Wave does it

From a new recommendation to a running Pod
Kubernetes VPA, default Recreate modePod replaced
  1. VPA Recommender
    reads usage every 1m
  2. ↓target→
    VPA Updater
    every 1m, acts when the change priority is at least 10%
  3. ↓evict→
    Eviction API
    removes the Pod, and respects the PDB
  4. ↓recreate→
    VPA Admission Controller
    sets the new requests on the new Pod
Wave Realtime Resizing, In-Place modeSame Pod keeps running
  1. Smart Sizing
    a new recommendation every 10 min
  2. ↓skip check→
    Skip thresholds
    applies only at 10%, 50 mCPU, or 64 MiB of change
  3. ↓resize→
    Wave Core
    calls resize on each running Pod
  4. ↓Pod spec→
    kubelet
    applies the new requests to the running container
Recreate mode, the 1m loops, the 10% threshold, and the PDB: Kubernetes VPA docs. Resizing a running container: kubernetes.io. In-Place mode, the 10-minute cycle, and the skip thresholds: Wave Sizing docs.
1

Choose a mode per workload

Off, In-Place, or Manifest Patch. Off is the default, and each container also needs its own opt-in. Realtime Resizing is not available while HPA or Autopilot scales the workload.

2

Skip small changes

Wave applies a recommendation only when the change is at least 10%, 50 mCPU, or 64 MiB, so small changes do not reach the cluster.

3

Resize in place, or retry later

In In-Place mode, Wave calls resize on each running Pod. If the node lacks room, Wave records the rejection and retries on the next 10-minute cycle. It does not evict the Pod.

4

Keep a record

Apply History shows every change per workload, per container, and per cycle, with the old and new values.

Related in Wave Sizing

Smart Sizing →Smart Sizing Report →Read the docs →
Book a demoStart free
Product
WaveWave GPULLM Serving Professional ServiceWave AI Agent2026 Q4
Resources
DocsAPI ReferenceBlogConsole DemoPricing
Company
STCLabBook a demoContact
STCLab© 2026 Wave All rights reserved.
Terms of ServicePrivacy PolicyCookies