kuberneteshorizontal-scaling

Kubernetes horizontal pod autoscaling initial delay?


Is there a configuration in Kubernetes horizontal pod autoscaling to specify a minimum delay for a pod to be running or created before scaling up/down?

For example with something like:

# I am looking for a flag like this
--horizontal-pod-autoscale-initial-upscale-delay=5m0s

# Similar to these existing flags
--horizontal-pod-autoscaler-downscale-delay=2m0s
--horizontal-pod-autoscaler-upscale-delay=2m0s

Having as a result:

I have a situation where a Pod consumes lots of resources on start-up for bootstrapping (which is expected) but I don't want it scaled during this time, and once bootstrap is done it may be eligible for autoscaling.


Solution

  • This flag actually exists: --horizontal-pod-autoscaler-cpu-initialization-period In addition you need to consider the readiness delay: --horizontal-pod-autoscaler-initial-readiness-delay and the metric loop time, --horizontal-pod-autoscaler-sync-period to calculate the total (max/min/average) delay.

    See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/