Skip to Content
Sunbeen's Blog

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)으로 업데이트를 수행하면:

  1. 기존 v1 Pod 전체 삭제
  2. 서비스 연결 대상 제거
  3. 다운타임 발생
  4. 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