Deployment
🔶 Deployment란?
🔹 Deployment의 역할
Deployment는 현재 운영 중인 서비스를 새로운 버전으로 업데이트(재배포)할 때 사용하는 Controller이다.
주요 목적은 다음과 같다.
- 서비스 배포 자동화
- 무중단 배포 지원
- 롤백 지원
- 버전 관리
- 배포 전략 관리
즉, 운영 환경에서 안정적으로 애플리케이션을 배포하기 위한 핵심 Controller이다.
🔶 Kubernetes의 대표 배포 전략
쿠버네티스에서는 대표적으로 다음과 같은 배포 전략을 사용한다.
- Recreate
- Rolling Update
- Blue-Green
- Canary
🔹 Recreate 배포 방식
▫️ Recreate란?
Recreate 방식은 기존 버전의 Pod를 모두 삭제한 뒤 새로운 버전의 Pod를 생성하는 가장 단순한 배포 방식이다.
▫️ 배포 과정
현재:
- v1 Pod 2개 운영 중
- Service가 v1 Pod에 연결
되어 있다고 가정한다.
새로운 버전(v2)으로 업데이트를 수행하면:
- 기존 v1 Pod 전체 삭제
- 서비스 연결 대상 제거
- 다운타임 발생
- v2 Pod 새로 생성
순서로 진행된다.
▫️ 특징
장점
- 구조가 단순함
- 구현이 쉬움
단점
- 다운타임 발생
- 서비스 일시 중단 발생
🔹 Rolling Update 배포 방식
▫️ Rolling Update란?
Rolling Update는 기존 Pod를 한 번에 제거하지 않는다.
새 버전 Pod를 조금씩 추가하면서 기존 Pod를 점진적으로 제거하는 방식이다.
▫️ 특징
장점
- 다운타임 없음
- 안정적인 배포 가능
단점
- 배포 중 추가 자원 필요
🔹 Blue-Green 배포 방식
▫️ Blue-Green이란?
Blue-Green 배포는:
- 기존 서비스(v1)
- 새로운 서비스(v2)
를 동시에 운영한 뒤 Service 연결만 전환하는 방식이다.
🔹 Canary 배포 방식
▫️ Canary란?
Canary 배포는 일부 사용자에게 먼저 새 버전을 배포해 위험 여부를 검증하는 방식이다.
Last updated on