I understand CPU requests, limits, VPA recommendations, minAllowed, maxAllowed, and controlledValues individually, but I'm having trouble understanding how they interact when the Vertical Pod Autoscaler calculates and applies resources. For example, if VPA recommends 600m CPU, the Pod currently requests 100m and has a 500m limit, and maxAllowed is set to 800m, what request and limit will ultimately be applied?
1 Answer
VPA primarily controls the container’s resource requests. The recommendation is constrained by minAllowed and maxAllowed, so a 600m recommendation is valid when maxAllowed is 800m. With the default behavior, the limit is adjusted using the original request-to-limit ratio. In this example, the original ratio is 100m:500m, or 1:5. Applying that ratio to a 600m request produces a 3000m CPU limit. So the resulting values would generally be a 600m request and a 3000m limit—not a 600m request with the old 500m limit.

That clears it up. I was assuming the existing limit stayed fixed, but the original request-to-limit ratio is what determines the updated limit.