Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kubernetes horizontal pod autoscaling initial delay?

Is their 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:

  • Wait for 5 min before any upscale occur
  • After 5 min, perform a downscale at most every 2 min

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.

like image 252
Pierre B. Avatar asked Aug 06 '19 12:08

Pierre B.


1 Answers

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/

like image 199
Thomas Avatar answered Sep 20 '22 07:09

Thomas