| Use Case | How VPA Helps |
|---|---|
| Stateful databases | Scales CPU and memory without restarting pods, preserving connections and avoiding failovers |
| Batch and ML workloads | Adjusts resources dynamically as job phases shift between CPU-intensive and memory-intensive stages |
| JIT-compiled applications | Provides extra CPU during startup (via CPU Startup Boost) and scales back once the application is warm |
| Cost optimization | Eliminates over-provisioning by continuously right-sizing pods based on observed consumption patterns |
| Game servers and real-time services | Adapts to fluctuating demand (e.g., shifting player counts) without service interruption |
| Tool | Purpose | Installation |
|---|---|---|
| Minikube | Provisions a local, single-node Kubernetes 1.35 cluster | Download or choco install minikube |
| kubectl | Kubernetes CLI, configured to communicate with the Minikube cluster | Install guide or choco upgrade kubernetes-cli |
| Git | Required to clone the official autoscaler repository | Pre-installed on most systems |
| Feature | Status in 1.35 | What It Means |
|---|---|---|
| In-Place Pod Resize | Stable (GA) | CPU and memory are mutable on running Pods; CGroups are patched live |
VPA InPlaceOrRecreate mode |
Beta | VPA can resize Pods in-place before falling back to eviction |
| Memory limit decrease | Now permitted | Previously prohibited; Kubelet now allows it with best-effort OOM prevention |
| Prioritized resizes | New | Deferred resizes are retried based on PriorityClass, QoS class, and age |
| Resize observability | New | Kubelet metrics and Pod events for tracking in-place resize operations |