Cluster information:
Kubernetes version: 1.22.6-gke.300
Cloud being used: Google Cloud
Host OS: linux/amd64
I’m running the Kubernetes VPA on a GKE project. It has Vertical Pod Autoscaling enabled and I’ve run the vpa-up.sh
script from their Github VPA.
Furthermore, the pods running are JupyterHub notebook servers, which has been setup following: Zero to Jupyterhub with Kubernetes. They are created with 200m CPU limit and 100m CPU request:
As a test, I’m running an infinite for loop, printing the value every time, to get the CPU running.
When running the for loop in a notebook, the CPU usage quickly reaches the limit of 200m CPU. However the VPA never performs a scale, despite the updateMode
being Auto
. I’ve tried setting a minAllowed
for the VPA, but that still doesn’t trigger a rescale.
...
resourcePolicy:
containerPolicies:
- containerName: '*'
minAllowed:
cpu: 400m
So when describing the pod and autoscaler, the output shows:
NAME CPU(cores) MEMORY(bytes)
jupyter-pytest 1m 411Mi
...
recommendation:
containerRecommendations:
- containerName: jupyter-pytest
lowerBound:
cpu: 400m
memory: 500Mi
target:
cpu: 400m
memory: 500Mi
uncappedTarget:
cpu: 25m
memory: 262144k
upperBound:
cpu: 400m
memory: "951510605"
How come it doesn’t perform a scale, despite the usage being below the lowerBound
?