<p>I have a deployment configured in yml using RollingUpdate:</p>

<pre><code>  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 10%
</code></pre>

<p>I'd like to be able to slow down the deployment to give a longer window in which I can pause and possibly rollback.</p>

<p>Is there a way to configure this?</p>

<p>Kubernetes doesn't really have a way of controlling this (the speed of the rolling updates). <code>maxUnavailable: 0, maxSurge: 10%</code> seems like a step gap hack. </p>

<p>If you are concerned about your update being ready and having the ability to rollback, you should consider creating a canary <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="nofollow noreferrer">Deployment</a>. In other words, another Deployment with a small number of replicas, that you can delete if something goes wrong.</p>

<p>Another alternative is looking at a Service-Mesh like <a href="https://istio.io" rel="nofollow noreferrer">Istio</a> that allows you to do <a href="https://istio.io/blog/2017/0.1-canary/" rel="nofollow noreferrer">Canary Deployments</a>.</p>
