DevOps Daily with Fexingo · 2026-07-21 · 10 min
Kubernetes Vertical Pod Autoscaler (VPA) is supposed to right-size container resource requests automatically. But in practice, VPA's recommender often suggests CPU and memory values that lead to pod evictions or wasted capacity. Drawing on real incidents from a mid-2026 production cluster running 50 microservices, Lucas and Luna unpack why VPA's default OOM-aware policy can misinterpret short-lived memory spikes, how its recommendation window of 8 days lags behind traffic patterns, and why the 'lower bound' mode sometimes recommends requests below actual usage. They walk through a specific case where VPA recommended 512 MiB of memory for a Go service that actually needed 1.2 GiB under peak load, causing repeated OOMKills. The episode closes with practical mitigations: setting custom OOM-scoring thresholds, using VPA in 'initial' mode for batch workloads, and combining VPA with Horizontal Pod Autoscaler using resource metrics. Listeners come away with a clear mental model of VPA's blind spots and how to compensate for them.