VPA
also: Vertical Pod Autoscaler
VPA stands for Vertical Pod Autoscaler, a Kubernetes tool that automatically adjusts CPU and memory resource requests and limits for containers based on actual usage patterns.
VPA is a Kubernetes component that monitors the resource consumption of your pods over time and recommends—or automatically applies—adjustments to their resource requests and limits. This helps optimize cluster resource utilization and prevents pods from being over-provisioned or starved for resources.
VPA works by collecting metrics on actual CPU and memory usage, then either suggesting changes (in recommendation mode) or directly updating pod specifications with new resource values (in update mode). For example, if a pod requests 2GB of memory but consistently uses only 500MB, VPA can lower that request, freeing resources for other workloads.
VPA is particularly useful in development environments or for applications with variable workloads, though it requires pod restarts to apply changes in most cases, making it less suitable for latency-sensitive services.