지니데비 기록 자세히보기

데브옵스/Orchestration

[Kubernetes] 24. Rolling Update, Rollback

지니데비 2024. 11. 14. 21:29
728x90

Recreate vs Rolling Update (default)

Recreate는 기존버전을 모두 종료한 후(다운타임 발생) 새 버전의 Pod를 생성하여 배포하는 반변, Rolling Update는 애플리케이션을 다운타임 없이 새 버전으로 점진적으로 업데이트하는 방법이다. 기존의 Pod를 하나씩 종료하고 새 버전의 Pod를 생성하면서 배포해, 전체 시스템의 가용성을 유지할 수 있다.

 

  • 작동 방식
    • 새 버전의 Pod를 하나씩 생성하고, 기존 버전의 Pod를 하나씩 삭제한다.
    • 이 과정을 반복하여 모든 Pod가 새 버전으로 전환될 때까지 진행한다.
    • 배포 중에 문제가 생기면 중간에 멈출 수 있고, 특정 시점부터 재개할 수 있다.
  • 장점
    • 서비스 다운타임 없이 업데이트할 수 있다.
    • 대규모 애플리케이션에서도 사용자가 영향을 거의 받지 않는다.
kubectl create -f [deployment yaml file name]

## status
kubectl rollout status [resource name] [deployment name]
kubectl rollout history [deployment name]


# update
kubectl apply -f [deployment yaml file name]

# image update
kubectl set image [deployment name] \
                  [container name]=[container image]

 

Rollback

Rollback는 문제가 있는 애플리케이션 업데이트를 이전 상태로 되돌리는 작업이다. 만약 최신 배포에 문제가 생기면 쉽게 이전 버전으로 돌아갈 수 있다.

  • 작동 방식
    • 쿠버네티스는 이전 배포의 상태를 기록하고 있어서 문제가 생기면 rollback 명령어로 이전 버전으로 복구할 수 있다.
  • 장점
    • 배포 실패 시 신속하게 복구할 수 있다.
    • 특정 버전으로 되돌릴 수 있어 장애를 최소화한다.
## rollback
kubectl rollout undo [deployment name]

 

 

728x90
반응형