strategy:
type: Recreate
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 50%
maxSurge: 50%
replicaset: 2
maxUnavailable: 0%
maxSurge: 100%
deployment의 기존 이미지를 새로운 이미지로 변경
kubectl set image deployment.v1.app/nginx-deploy nginx=nginx1.16.1
이미지 변경 확인
kubectl describe deploy nginx-deploy Name: nginx-deploy Namespace: default CreationTimestamp: Tue, 13 Aug 2024 10:19:28 +0900 Labels: app=nginx Annotations: deployment.kubernetes.io/revision: 2 Selector: app=nginx Replicas: 2 desired | 2 updated | 3 total | 2 available | 1 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 25% max unavailable, 25% max surge Pod Template: Labels: app=nginx Containers: nginx: Image: nginx:1.16.1 Port: 80/TCP Host Port: 0/TCP Environment: <none> Mounts: <none> Volumes: <none> Node-Selectors: <none> Tolerations: <none> Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing True ReplicaSetUpdated OldReplicaSets: nginx-deploy-7f89d7585d (1/1 replicas created) NewReplicaSet: nginx-deploy-595dff4fdb (2/2 replicas created) Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ScalingReplicaSet 11m deployment-controller Scaled up replica set nginx-deploy-7f89d7585d to 2 Normal ScalingReplicaSet 11s deployment-controller Scaled up replica set nginx-deploy-595dff4fdb to 1 Normal ScalingReplicaSet 0s deployment-controller Scaled down replica set nginx-deploy-7f89d7585d to 1 from 2 Normal ScalingReplicaSet 0s deployment-controller Scaled up replica set nginx-deploy-595dff4fdb to 2 from 1
roll out 상태 확인
$ kubectl rollout status deployment/nginx-deploy deployment "nginx-deploy" successfully rolled out
특정 버전으로 Roll Back
배포된 버전 확인
$ kubectl rollout history deployment/nginx-deploy deployment.apps/nginx-deploy REVISION CHANGE-CAUSE 1 <none> 3 <none> 4 <none>
REVISION 3으로 RollBack
$ kubectl rollout undo deployment/nginx-deploy --to-revision=3
REVISION 3이 nginx 이미지 1.999 이기 때문에 배포 실패
$ kubectl rollout status deployment/nginx-deploy Waiting for deployment "nginx-deploy" rollout to finish: 1 out of 2 new replicas have been updated...
다시 RollBack
$ kubectl rollout undo deployment/nginx-deploy deployment.apps/nginx-deploy rolled back$ kubectl rollout status deployment/nginx-deploy deployment "nginx-deploy" successfully rolled out
배포 주석 추가 (현재 REVISION에서만 추가 가능)
kubectl annotate deployment/nginx-deploy kubernetes.io/change-cause="Updated image to nginx:1.16.1"$ kubectl rollout history deployment/nginx-deploy deployment.apps/nginx-deploy REVISION CHANGE-CAUSE 1 <none> 5 <none> 6 Updated image to nginx:1.16.1