Exercise 7.3: Rolling Updates and Rollbacks using Deployment
CP 노드에 연결된 터미널로 이동
이전 실습에서 생성된 Deployment의 배포 전략 확인
kubectl get deploy webserver -o jsonpath='{.spec.strategy}' | jq
아래의 명령어로 텍스트 에디터를 실행해서 생성된 Deployment의 Manifest를 수동으로 수정
kubectl edit deploy webserver
25번 라인의 strategy을 아래와 같이 변경하고 저장
.... strategy: type: Recreate template: ....
3, 4번 단계를 수행하지 않고 아래의 명령어로 대체 가능
kubectl patch deploy webserver --type strategic \ --patch '{"spec":{"strategy":{"$retainKeys":["type"],"type":"Recreate"}}}'
Deployment의 배포 전략이 변경되었는지 확인
kubectl get deploy webserver -o jsonpath='{.spec.strategy}' | jq
Deployment의 이미지를 변경
kubectl set image deploy webserver nginx=nginx:1.23.1-alpine
새로운 Pod가 생성되었는지 확인
kubectl get pod -l app=webserver
Pod의 컨테이너 이미지가 변경되었는지 확인
kubectl get pod -l app=webserver \ -o=custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[*].image
Deployment의 변경 기록 확인
kubectl rollout history deploy webserver
Revision 1과 Revision 2를 비교
diff <(kubectl rollout history deploy webserver --revision=1) \ <(kubectl rollout history deploy webserver --revision=2) -y
이전 버전으로 롤백
kubectl rollout undo deploy webserver
새로운 Pod가 생성되었는지 확인
kubectl get pod -l app=webserver
Pod의 컨테이너 이미지가 변경되었는지 확인
kubectl get pod -l app=webserver \ -o=custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[*].image
Deployment 삭제
kubectl delete deploy webserver
Last updated