티스토리 뷰
1. 문제: 쿠버네티스 배포 및 롤링 업데이트
1) 요구사항
(1) 어플리케이션 배포
- nginx:1.19 이미지를 사용하는 디플로이먼트 'nginx-deployment', 3개의 레플리카 실행
(2) 롤링 업데이트 수행
- nginx의 버전을 1.19에서 1.20으로 업데이트
(3) 롤백수행
- 롤링 업데이트 이후 문제가 발생했다고 가정하고 이전 버전으로 롤백
2. 해결과정
1) 어플리케이션 배포
kubectl create deployment nginx-deployment --image=nginx:1.19 --replicas=3
2) 롤링 업데이트 수행
(1) 이미지 업데이트
- kubectl set image명령어를 사용하여 이미지를 변경
kubectl set image deployment/nginx-deployment nginx=nginx:1.20
deployment "nginx-deployment" successfully rolled out
(2) 결과 확인
kubectl get deployments
kubectl get pods
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 2m
NAME READY STATUS RESTARTS AGE
nginx-deployment-7d8f9c9b8b-jh9k7 1/1 Running 0 30s
nginx-deployment-7d8f9c9b8b-lm4n5 1/1 Running 0 30s
nginx-deployment-7d8f9c9b8b-pq6r8 1/1 Running 0 30s
3) 롤백 수행
(1) 롤백 실행
- 문제가 발생했다고 가정하고, 이전 버전(1.19)으로 롤백
kubectl rollout undo deployment/nginx-deployment
(2) 롤아웃 상태 확인
- 롤백 진행 상황을 모니터링
kubectl rollout status deployment/nginx-deployment
deployment "nginx-deployment" successfully rolled out
#롤백의 경우
deployment.apps/nginx-deployment rolled back
4) 롤백 결과 확인("NEW_AGE"인지 확인)
kubectl get deployments
kubectl get pods
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 NEW_AGE
NAME READY STATUS RESTARTS AGE
nginx-deployment-6d4cf56db6-k8jz8 1/1 Running 0 NEW_AGE
3. 롤아웃과 관련한 특수 기능들
1) 특정 리버전으로 롤백
- 이전 바꿨던 다양한 버전들 중에 하나로 롤백이 가능하다.
(1) record
- --record 옵션을 설정함으로써 rollout history에 기록을한다.
kubectl set image deployment/nginx-deployment nginx=nginx:nonexistent --record=true
(2) rollout history 확인
- rollout 기록을 확인하고 원하는 리비전들을 확인한다.
kubectl rollout history deployment/nginx-deployment
REVISION CHANGE-CAUSE
1 kubectl create deployment nginx-deployment --image=nginx:1.19 --replicas=3 --record=true
2 kubectl set image deployment/nginx-deployment nginx=nginx:nonexistent --record=true
(3) 특정 리비전으로 롤백
kubectl rollout undo deployment/nginx-deployment --to-revision=1
deployment.apps/nginx-deployment rolled back to revision 1
'쿠버네티스' 카테고리의 다른 글
CKA 기출개념 정리 리소스 제한 (1) | 2024.12.31 |
---|---|
CKA 기출개념 정리 ConfigMap과 Secret을 사용하여 어플리케이션 구성 (0) | 2024.12.31 |
CKA 기출개념 정리 쿠버네티스 업그레이드 (0) | 2024.12.31 |
CKA 기출개념 정리 클러스터 설치 (0) | 2024.12.31 |
CKA 기출개념 정리 워커노드 Not ready (0) | 2024.12.31 |