<p>I am using Kubernetes to create a deployment with 1000s of small clients. However, my server that these clients connect to cannot handle so many requests at once. Does anyone know a way in Kubernetes to only create 100 pods per minute, wait for them to in ready state and then create the next 100.</p>

<p>There is no such direct option in K8s 1.18. Here is related <a href="https://github.com/kubernetes/kubernetes/issues/3312" rel="nofollow noreferrer">github issue</a>. Some possible workarounds are:</p>

<ul>
<li><p>use multiple deployments, maybe within multiple namespaces. It may be hard to manage single deployment with 1000s of replicas in therms of any changes.</p></li>
<li><p>implement random configurable delay inside your client(or with lightweight wrapper) to spread the load over time, depending on total wall clock startup time of your 1000s clients and server power</p></li>
<li>implement <a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics" rel="nofollow noreferrer">custom metrics agent</a> with <code>pod is ready</code> check to scale deployment with <a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/" rel="nofollow noreferrer">HorisontalPodAutoscaler</a> as you need and use <a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#scaling-policies" rel="nofollow noreferrer">Scaling Policies</a> to create 100 pods per minute</li>
<li>implement your own pod autoscaler</li>
</ul>
