Search code examples
kuberneteskubectl

Does apply works according to the rolling update policy?


I know about several ways to perform rolling update of deployment. But do either kubectl apply -f deployment.yaml or kubectl apply -k ... update deployment according to the rolling update policy of a new version of deployment or an old one?


Solution

  • Yes it will, with one note :

    Note: A Deployment's rollout is triggered if and only if the Deployment's Pod template (that is, .spec.template) is changed, for example if the labels or container images of the template are updated. Other updates, such as scaling the Deployment, do not trigger a rollout.

    Reference : https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment

    For example, you can see the events section of a deployment update after updating the nginx image and running kubectl apply -f nginx-deploy.yml :

    ...
    NewReplicaSet:   nginx-deployment-559d658b74 (3/3 replicas created)
    Events:
      Type    Reason             Age   From                   Message
      ----    ------             ----  ----                   -------
      Normal  ScalingReplicaSet  112s  deployment-controller  Scaled up replica set nginx-deployment-66b6c48dd5 to 3
      Normal  ScalingReplicaSet  44s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 1
      Normal  ScalingReplicaSet  20s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 2
      Normal  ScalingReplicaSet  20s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 2
      Normal  ScalingReplicaSet  19s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 1
      Normal  ScalingReplicaSet  19s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 3
      Normal  ScalingReplicaSet  18s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 0
    $ kubectl get deploy
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   3/3     3            3           114s