NAME READY STATUS RESTARTS AGE
pod/myapp-replicaset-2z8c41/1 Running 03m22s
pod/myapp-replicaset-ckn8d 1/1 Running 019h
pod/myapp-replicaset-jfkq81/1 Running 018h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 24h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/myapp-deployment 3/3333m22s
NAME DESIRED CURRENT READY AGE
replicaset.apps/myapp-replicaset 33319h
Rollout and Versioning
새로운 Deployment를 만들거나 기존 Deployment에서 이미지를 업데이트할 때마다 롤아웃이 트리거된다.
kubectl create -f deployment.yaml 명령어를 입력하여 "Deployment"를 생성한다.
kubectl rollout status deployment.apps/myapp-deployment 명령어를 입력하여 상태를 확인한다.
Waiting for deployment "myapp-deployment" rollout to finish: 0 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 1 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 2 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 3 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 4 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 5 of 6 updated replicas are available...
deployment"myapp-deployment" successfully rolled out
kubectl delete deployment myapp-deployment 명령어를 입력하여 "Deployment"를 삭제한다.
삭제 직후 kubectl rollout status deployment.apps/myapp-deployment 명령어를 입력하여 복제본이 제거되는 것을 확인한다.
Waiting for deployment "myapp-deployment" rollout to finish: 0 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 1 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 2 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 3 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 4 of 6 updated replicas are available...
Waiting for deployment "myapp-deployment" rollout to finish: 5 of 6 updated replicas are available...
deployment"myapp-deployment" successfully rolled out
kubectl rollout history deployment.apps/myapp-deployment 명령어를 입력하여 Deployment의 히스토리를 확인한다.
REVISION CHANGE-CAUSE
1 <none>
이번에는 Deployment를 생성할 때 "--record" 옵션을 추가하여 히스토리를 기록한다.
kubectl create -f deployment.yaml --record 명령어를 입력하여 "Deployment"를 생성한다.
다시 kubectl rollout history deployment.apps/myapp-deployment 명령어를 실행하면 실행할 때의 명령어가 저장되어 있는 것을 확인할 수 있다.
수정 후 kubectl describe deployment myapp-deployment 명령어를 입력하여 변경된 내용을 확인한다.
// 생략 ..
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 8m deployment-controller Scaled up replica set myapp-deployment-5655d5f56f from0to6
Normal ScalingReplicaSet 68s deployment-controller Scaled up replica set myapp-deployment-5bc74bc7d5 from0to2
Normal ScalingReplicaSet 68s deployment-controller Scaled down replica set myapp-deployment-5655d5f56f from6to5
Normal ScalingReplicaSet 68s deployment-controller Scaled up replica set myapp-deployment-5bc74bc7d5 from2to3
Normal ScalingReplicaSet 58s deployment-controller Scaled down replica set myapp-deployment-5655d5f56f from5to4
Normal ScalingReplicaSet 58s deployment-controller Scaled up replica set myapp-deployment-5bc74bc7d5 from3to4
Normal ScalingReplicaSet 57s deployment-controller Scaled down replica set myapp-deployment-5655d5f56f from4to3
Normal ScalingReplicaSet 57s deployment-controller Scaled up replica set myapp-deployment-5bc74bc7d5 from4to5
Normal ScalingReplicaSet 55s deployment-controller Scaled down replica set myapp-deployment-5655d5f56f from3to2
Normal ScalingReplicaSet 51s (x3 over55s) deployment-controller (combined fromsimilar events): Scaled down replica set myapp-deployment-5655d5f56f from1to0
Events 영역을 확인해보면 기본 전략이 "RollingUpdate" 전략이기 때문에 이전 ReplicaSet이 하나씩 줄어들고 새 ReplicaSet이 하나씩 늘어나는 것을 확인할 수 있다.
이번에는 "set image" 명령어를 사용하여 이미지를 변경해 보도록 한다. kubectl set image deployment myapp-deployment nginx=nginx:1.18-perl --record 명령어를 입력한다.
Flag --record has been deprecated, --record will be removed in the future
deployment.apps/myapp-deployment image updated
업데이트가 완료되었으면 다시 kubectl rollout history deployment.apps/myapp-deployment 명령어를 입력하여 변경된 내용을 확인한다.