Realtime Resizing
Applies Smart Sizing recommendations automatically every 10 minutes, by resizing running Pods in place or by patching the workload spec.
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).
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
- VPA Recommenderreads usage every 1m
- targetVPA Updaterevery 1m, acts when the change priority is at least 10%
- evictEviction APIremoves the Pod, and respects the PDB
- recreateVPA Admission Controllersets the new requests on the new Pod
- Smart Sizinga new recommendation every 10 min
- skip checkSkip thresholdsapplies only at 10%, 50 mCPU, or 64 MiB of change
- resizeWave Corecalls resize on each running Pod
- Pod speckubeletapplies the new requests to the running container
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.
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.
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.
Keep a record
Apply History shows every change per workload, per container, and per cycle, with the old and new values.