kubernetes 배포시 주로 helm을 이용하여 배포한다.

  • helm 은 리눅스의 apt 툴이나, node.js의 npm과 같은 Kubernetes 용 패키지 매니지먼트 툴로,
    Kubernetes 배포를 코드로 관리하여 자동으로 배포할 수 있도록 제공한다.
  • Kubernetes 환경에서 helm 설치/업그레이드/삭제/롤백과 같은 애플리케이션 생명주기에 개입할 수 있다.
  • helm으로 배포된 애플리케이션을 하나의 릴리즈로 불리는데, 해당 릴리즈로 배포된 애플리케이션의 버전관리가 가능하다.

서비스에 문제가 있는 경우, 배포된 파드를 급작스럽게(파이프라인을 다시 돌릴 시간도 없이) 이전 컨테이너 이미지로 복원해야 한다면 helm 복원을 사용하여 복원할 수 있다.


현재 배포 버전 확인

현재 배포 버전을 확인한다.

$ helm history {RELEASE NAME} -n {NAMESPACE NAME}

현재 배포되어 running중인 파드를 확인한다.

$ kubectl get pods -n {NAMESPACE NAME}

helm 복원

이전의 REVISION 으로 복원한다. ( REVISION은 현재 배포 버전 확인 단계에서 확인할 수 있다)

$ helm rollback {RELEASE NAME} {REVISION NUMBER} -n {NAMESPACE NAME}

복원 확인

helm history로 복원이 잘 되었는지 확인한다.

APP VERSION이 복원하고자 하는 REVISION의 APP VERSION으로 돌아갔는지 확인한다.

$ helm history {RELEASE NAME} -n {NAMESPACE NAME}

현재 running 중인 파드의 이미지 버전을 확인한다.

$ kubectl get {POD NAME} -o yaml -n {NAMESPACE NAME} | grep -i Image