Open cmotsn opened 4 months ago
/area vertical-pod-autoscaler
Hey @cmotsn I'm not sure I understand your workflow properly here, as the "steps to reproduce" section is missing. What is it exactly you're doing?
I understand that you are using VPA (installed with the fairwinds chart) for you workload and get some recommendations. As far as I know, Fairwinds automatically generates the VPA objects for you and runs VPA in updateMode: off
, so it doesn't automatically update your resource requests, right? So how are you applying new resource requests and which values are you picking from the fairwinds UI?
Can you please provide the VPA and deployment yaml files for your workload?
Thanks!
/triage needs-information
Hi, Thank you for your response and taking the time to help.
I understand that you are using VPA (installed with the fairwinds chart) for you workload and get some recommendations. As far as I know, Fairwinds automatically generates the VPA objects for you and runs VPA in updateMode: off, so it doesn't automatically update your resource requests, right?
Correct. We only wanted the recommendation from VPA, that we access either by the Goldilocks/Fairwind UI or simply by consuming the metric kube_customresource_verticalpodautoscaler_status_recommendation_containerrecommendations_target
(because Goldilocks uses this target metric for Garanteed QoS).
Here's a look to what this target metric is looking like for our Java backends:
Basically we got the same 0.015 value for all our single-container Java backends pods
So how are you applying new resource requests and which values are you picking from the fairwinds UI?
I took the recommended values from Goldilock (which is the same as the metric value from VPA) & created a new version of my helm chart with both Memory&CPU requests&limits. But it never managed to deploy. I changed the CPU Limit to 1 and re-deployed, the deployment succeeded, which is why I think the 0.015 value is faulty.
The fact that the recommendations seem pertinent for memory and not for CPU is throwing me: if VPA could not access the pods data from Prometheus, it wouldn't make pertinent memory recommendations, so I'm missing something.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
Which component are you using?: vertical-pod-autoscaler
What version of the component are you using?: registry.k8s.io/autoscaling/vpa-recommender:
Component version: 1.1.2
What k8s version are you using (
kubectl version
)?:kubectl version
OutputWhat environment is this in?: AKS
What did you expect to happen?: I expected to be able to set the recommended value as limits&request and have my pods deploy properly
What happened instead?: the recommended CPU target values are too low and the (Java Spring) containers can't even start
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
I installed the recommender using the Fairwind/VPA Helm chart and overrode the recommender image tag to use the latest version. I configured the recommender to use prometheus, with some custom args in order to avoid errors in the logs, following comments on https://github.com/kubernetes/autoscaler/issues/5031 :
The Memory recommendations look more pertinent, at the very least the containers start using the given Memory target recommendations as requests and limits.