How to control speed of RollingUpdate

11/19/2018

I have a deployment configured in yml using RollingUpdate:

  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 10%

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

Is there a way to configure this?

-- sthomps
kubernetes

1 Answer

11/20/2018

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

If you are concerned about your update being ready and having the ability to rollback, you should consider creating a canary Deployment. In other words, another Deployment with a small number of replicas, that you can delete if something goes wrong.

Another alternative is looking at a Service-Mesh like Istio that allows you to do Canary Deployments.

-- Rico
Source: StackOverflow