디플로이먼트란?
서비스 버전이 업데이트되어 파드를 새로운 버전의 이미지 파드로 교체해야 한다면? 새 버전에 이슈가 발견되어 롤백을 진행해야 한다면?
디플로이먼트 (Deployment)
- 파드의 이미지 버전이 갱신될 때 배포 전략을 설정
- 디플로이먼트 오브젝트를 생성하면 대응되는 ReplicaSet과 Pod 자동 생성
- 기본적으로 Recreate 전략과 RollingUpdate 전략 지원
사용자는 특수한 목적이 아니라면 파드와 레플리카셋이 아닌 디플로이먼트로 워크로드 관리
디플로이먼트의 배포전략
재생성 (Recreate)
- 기존 레플리카셋의 파드를 모두 종료 후 새 레플리카셋의 파드를 새로 생성
롤링 업데이트 (Rolling Update)
세부 설정에 따라 기존 레플리카셋에서 새 레플리카셋으로 점진적으로 이동
- maxSurge: 업데이트 과정에 spec.replicas 수 기준 최대 새로 추가되는 파드 수
- maxUnavailable: 업데이트 과정에 spec.replicas 수 기준 최대 이용 불가능 파드 수
새 파드 생성 후 기존 파드 삭제 반복
- 클러스터의 노드자원이 부족해질 수 있다.
- traffic 측면을 고려하면 이 전략이 유리하다.
maxSurge: 1
maxUnavailable: 0
기존 파드 삭제 후 새 파드 생성 반복
- 노드 자원을 초과하지 않는다.
- 대신 Pod를 1개 덜 사용하기 때문에 Traffic이 많은 상황에는 자원이 부족해질 수 있다.
maxSurge: 0
maxUnavailable: 1
참조: https://fastcampus.co.kr/dev_online_awsdevops
'DevOps. > Kubernetes' 카테고리의 다른 글
[Kubernetess] ConfigMap (0) | 2022.02.02 |
---|---|
[Kubernetes] Service (서비스) (0) | 2022.02.02 |
[Kubernetes] ReplicaSet (레플리카셋) (0) | 2022.02.02 |
[Kubernetes] 파드 (Pod) (0) | 2022.02.02 |
[Kubernetes] kubectl 명령형과 선언형 방식 (0) | 2022.02.01 |