티스토리 뷰

deployment 전략은 주로 애플리케이션이 변경될 때 사용한다.

이전 버전의 애플리케 이션에서 업데이트가 필요한 경우에 주로 사용되며, 배포 방법으로는 롤링, 재생성, blue/green 정책, 카나리가 있다.

 

 

Rolling update
롤링(rolling) 업데이트는 새 버전의 애플리케이션(파드)을 배포할 때 새 버전의 애플리케이 션은 하나씩 늘려가고 기존 버전의 애플리케이션은 하나씩 줄여나가는 방식으로, 쿠버네티스 에서 사용하는 표준 배포 방식이다.

 

 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rolling
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25%				#업데이트 중에 만들 수 있는 파드의 최대 개수
      maxUnavailable: 25%		#업데이트 중에 사용할 수 없는 파드의 개수, 
      							#0보다 큰 정수를 지정할 수 있고 퍼센트로 지정할 수도 있다.
  selector:
    matchLabels:
      app: rolling
  template:
    metadata:
      labels:
        app: rolling
    spec:
      containers:
        - name: rolling
          image: myimage
          ports:
            - containerPort: 8080

 

 

 

 


 

Blue/Green 정책
블루/그린(blue/green) 업데이트는 애플리케이션의 이전 버전(블루, V1 파드)과 새 버전(그 린, V2 파드)이 동시에 운영된다. 하지만 서비스 목적으로 접속할 수 있는 것은 새 버전의 파드만 가능하며 이전 버전의 파드는 테스트 목적으로만 접속할 수 있다.
  • 장점: 새로운 버전의 파드에 문제가 발생했을 때 빠르게 대응할 수 있으며 안정적으로 배포할 수 있다.
  • 단점: 많은 파드가 필요하므로 그만큼 많은 자원(CPU, 메모리)이 필요하다.

 

 


 

 

Canary 정책
카나리(canary)는 블루/그린과 비슷하지만 새 버전에는 조금씩 트래픽을 증가시켜 새로운 기 능등을 테스트한다. 기능 테스트가 끝나고 새 버전에 문제가 없다고 판단하면 이전 버전은 모두 종료시키고 새 버전으로만 서비스한다.