패스트캠퍼스 캐시백 챌린지 61일차
Deployment api resource와 관련된 내용의 클립을 수강하는식으로 챌린지를 진행하였다. maxSurge,maxUnavailable의 속성을 어떻게 설정해주냐에 따라서 파드가 업데이트 되는 방식의 차이가 생긴다는 것을 알 수 있었고, rollback 기능을 활용하는 방법에 대해서도 알 수 있었다. 다음 포스팅으로는 Service api resource와 관련된 내용을 포스팅 할 예정이다.
디플로이먼트
- 파드의 이미지 버전이 갱신될 때 배포 전략을 설정
- 디플로이먼트 오브젝트를 생성하면 대응되는 ReplicaSet과 Pod 자동 생성
- 기본적으로 Recreate 전략과 RollingUpdate 전략 지원
- 사용자는 특수한 목적이 아니라면 파드와 레플리카셋이 아닌 디플로이먼트로 워크로드 관리
⇒ 서비스 버전이 업데이트되어 파드를 새로운 버전의 이미지 파드로 교체하거나, 새 버전에 이슈가 발견되어 롤백을 진행해야 하는 경우에 rollback,update 해줄때 용이하다.
실습 링크는 하단의 링크에 해당한다.
https://github.com/tedilabs/fastcampus-devops/tree/main/3-docker-kubernetes/8-k8s-deployment
deployment.yaml과 replicaset.yaml과의 차이점은 단지 kind의 내용에서 api resource가 다르게 적용이 되었음을 확인할 수 있다.
deployments의 축약어는 deploy에 해당한다.
디플로이먼트의 배포전략
- 재생성(Recreate)
⇒ 기존 레플리카셋의 파드를 모두 종료 후 새 레플리카셋의 파드를 새로 생성
- 롤링 업데이트(Rolling Update)
⇒ 세부 설정에 따라 기존 레플리카셋에서 새 레플리카셋으로 점진적으로 이동
- maxSurge: 업데이트 과정에 spec.replicas 수 기준 최대 새로 추가되는 파드 수
- maxUnavailable: 업데이트 과정에 spec.replicas 수 기준 최대 이용 불가능 파드 수
# 새 파드 생성 후 기존 파드 삭제 반복
# - 장점: 트래픽 측면에서는 유리
# - 단점: 하나의 파드를 추가하는식이라 클러스터의 노드 자원이 부족해질 수 있다.
maxSurge: 1
maxUnavailable: 0
# 기존 파드 삭제 후 새 파드 생성 반복
# - 장점: 클러스터의 노드 자원이 초과되는 일이 없다.
# - 단점: 트래픽이 굉장히 많았던 상황인 경우에 불리
maxSurge: 0
maxUnavailable: 1
strategy 값을 설정해주지 않으면 기본적으로 recreate 전략을 사용을 해준다. 따라서 rollingupdate 전략을 사용하기 위해서는 전략을 명시해 바꾸어주어야 한다. rollingUpdate에서 maxSurge와 maxUnavailable을 설정할 수 있고, 이 경우 새로운 파드를 추가하고 기존의 파드를 제거하는 방법을 반복하며 업데이트가 진행된다.
# record option을 주게되면 revision history를 확인할 수 있게된다.
# deprecated 된 요소지만 아직까지 많이 사용한다고 한다.
$ kubectl apply -f rolling-update.yaml --record
# 해당 revision이 만들어질때 사용된 command 기록 확인 가능
$ kubectl rollout history deployment rolling
pod가 한개 늘어나고, 줄어가는식으로 반복되어 업데이트가 완료된 모습이다.
# 1번째 revision으로 rollback
$ kubectl rollout undo deployment rolling --to-revision=1
# rollout의 상태를 확인
$ kubectl rollout status deployment rolling
1번째 revision으로 rollback 되었고, rollout status 명령어를 통해 rollout 상태를 확인할 수 있다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.