Search code examples
kuberneteshorizontal-scaling

Using Horizontal Pod Autoscaling along with resource requests and limits


Say we have the following deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  ...
spec:
  replicas: 2
  template:
    spec:
      containers:
        - image: ...
          ...
          resources:
            requests:
              cpu: 100m
              memory: 50Mi
            limits:
              cpu: 500m
              memory: 300Mi

And we also create a HorizontalPodAutoscaler object which automatically scales up/down the number of pods based on CPU average utilization. I know that the HPA will compute the number of pods based on the resource requests, but what if I want the containers to be able to request more resources before scaling horizontally?

I have two questions:

1) Are resource limits even used by K8s when a HPA is defined?

2) Can I tell the HPA to scale based on resource limits rather than requests? Or as a means of implementing such a control, can I set the targetUtilization value to be more than 100%?


Solution

  • No, HPA is not looking at limits at all. You can specify target utilization to any value even higher than 100%.