# 연습문제 애플리케이션 롤링 업데이트와 롤백
# 모든 서비스 삭제
kubectl delete all --all
# 서비스 생성하기
--dry-run=client : 작성된 문법이 정상적으로 작성이 됐는지 확인해주는 역할, 실제로 명령어가 실행 되지는 않음
kubectl create deploy --image apline:3.4 apline-deploy --dry-run=client
yaml 파일 형태로 출력 : kubectl create deploy --image apline:3.4 apline-deploy --dry-run=client -o yaml
- yaml 파일로 출력하면 바로 yaml 파일로 생성이 가능하다.
kubectl create deploy --image apline:3.4 apline-deploy --dry-run=client -o yaml > alpine-deploy.yaml
vim alpine-deploy.yaml
# 소스코드 부분 수정
strategy 추가, replicas 10개로 수정
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
run: alpine-deploy
name: alpine-deploy
spec:
replicas: 10
selector:
matchLabels:
run: alpine-deploy
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 50%
maxUnavailable: 50%
template:
metadata:
creationTimestamp: null
labels:
run: alpine-deploy
spec:
containers:
- image: alpine:3.4
name: alpine-deploy
resources: {}
status: {}
# 작성한 yaml 파일 실행
kubectl create -f alpine-deploy.yaml
# 방금 생성한 서비스 삭제하기
kubectl delete -f alpine-deploy.yaml
- pod 까지 같이 삭제가 된다.
# record=true 옵션을 부여히스토리를 확인하자.
kubectl create -f alpine-deploy.yaml --record=true
# 히스토리 기록되는지 확인하기
kubectl rollout history deploy alpine-deploy
# edit를 통한 이미지 업데이트
kubectl edit deploy alpine-deploy --record=true
컨테이너 항목의 이미지 버전을 3.5로 변경 후 저장하기
kubectl get pod
- 확인을 해보면 이전 3.4버전의 컨테이너들을 삭제되고 있고, 3.5 버전이 신규로 생성이 되고 있는 모습을 확인 할 수 있다.
# Replica set 내용을 확인하기
kubectl get rs
# 다시 히스토리 확인하기
kubectl rollout history deploy alpine-deploy
- 확인해보면 3번째 줄에 새로운 버전의 업데이트 내용이 기록된것을 확인 할 수 있다.
# 롤백하기 > 리비전1로
kubectl rollout undo deploy alpine-deploy --to-revision=1
- 히스토리 다시 확인하기
- 첫번째 버전이 마지막으로 내려와 저장된것을 확인할 수있다.
- 가장 첫번째 컨테이너 수가 10개로 늘어난것을 확인 할 수 있다.
- 버전1의 컨테이너 수를 10개로 늘린것이다.
- 이로써 다운타임 없이 업데이트가 가능한 롤링업데이트에 대해서 알아보았습니다.
'⭐ Kubernetes & EKS > 롤링 업데이트 와 롤백 (Rolling update and Rollb)' 카테고리의 다른 글
롤링 업데이트와 롤백 (0) | 2021.09.08 |
---|