Deployment를 업데이트할 때 해당 Deployment에 대한 롤아웃을 일시 중지할 수 있다.
변경 사항을 적용할 준비가 되면, Deployment 롤아웃을 재개한다.
이러한 방법으로, 불필요한 롤아웃을 트리거하지 않고 롤아웃 일시 중지와 재개 사이에 여러 수정 사항을 적용할 수 있다.
배포 일시 중지 - rollout pause
$ kubectl rollout pause deployment.apps/nginx-deployment
deployment.apps/nginx-deployment paused
$ kubectl set image deploy/nginx-deployment nginx-deployment=nginx:1.12
deployment.apps/nginx-deployment image updated
$ kubectl patch deployment.apps/nginx-deployment -p "{\"metadata\":{\"annotations\":{\"kubernetes.io/change-cause\":\"version 1.12\"}}}"
deployment.apps/nginx-deployment patched
$ kubectl rollout history deploy/nginx-deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
6 <none>
10 <none>
11 version 1.10.1
12 version 1.11
rollout history 로 확인해보면 배포가 진행되지 않았다는 것을 알 수 있다.
→ annotations에 작성한 version 1.12 이 기록되지 않는다.
업데이트를 pause 시켰으므로 디플로이먼트 작업이 진행되지 않는것이다.
배포 재개 - resume
$ kubectl rollout resume deployment.apps/nginx-deployment
deployment.apps/nginx-deployment resumed
$ kubectl rollout history deploy/nginx-deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
6 <none>
10 <none>
11 version 1.10.1
12 version 1.11
13 version 1.12
annotations에 작성한 version 1.12 이 기록됐다.
재시작 - restart
$ kubectl rollout restart deployment.apps/nginx-deployment
deployment.apps/nginx-deployment restarted
$ kubectl rollout history deploy/nginx-deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
6 <none>
10 <none>
11 version 1.10.1
12 version 1.11
13 version 1.12
14 version 1.12
15 version 1.12
annotations에 작성한 version 1.12 이 기록됐다.
'Cloud-native > Kubernetes' 카테고리의 다른 글
[Kubernetes]What is Kubernetes StatefulSet(스테이트풀세트) (0) | 2022.05.08 |
---|---|
[Kubernetes]What is Kubernetes DaemonSet(데몬세트) (0) | 2022.05.08 |
[Kubernetes]Rolling Back a Kubernetes Deployment - 디플로이먼트 롤백 (0) | 2022.05.07 |
[Kubernetes]What is Kubernetes Deployment(디플로이먼트) (0) | 2022.05.07 |
[Kubernetes]What is Kubernetes ReplicaSet(레플리카세트) (0) | 2022.05.07 |