Kubernetes에서 Helm 차트 배포와 롤백 과정을 단계별로 알아보겠습니다. Helm은 Kubernetes의 패키지 관리자 역할을 하며, 차트(Chart)를 통해 애플리케이션을 쉽게 설치하고 관리할 수 있게 도와줍니다. 이 튜토리얼에서는 Helm 차트를 배포하고, 업데이트하며, 필요할 경우 롤백하는 방법을 설명하겠습니다.

1. Helm 설치

먼저, Helm을 설치해야 합니다. Helm은 다양한 운영 체제에서 쉽게 설치할 수 있습니다. 아래는 Homebrew를 사용하여 macOS에 Helm을 설치하는 방법입니다.

brew install helm

Linux에서는 아래와 같은 명령어로 설치할 수 있습니다.

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

Windows 사용자는 Chocolatey를 통해 설치할 수 있습니다.

choco install kubernetes-helm

Helm을 설치한 후, 아래 명령어로 버전을 확인하여 제대로 설치되었는지 확인합니다.

helm version

2. Helm Chart 생성

이제 Helm 차트를 생성해 보겠습니다. 차트는 애플리케이션과 그 애플리케이션에 필요한 Kubernetes 리소스를 구성하는 YAML 파일입니다.

아래 명령어로 새로운 차트를 생성합니다.

helm create my-app

이 명령어를 실행하면 my-app이라는 디렉토리가 생성되고, 그 안에 기본적인 Helm 차트 구조가 만들어집니다.

3. 차트 수정

생성된 my-app 디렉토리 구조를 살펴보면 다음과 같은 파일이 있습니다.

my-app/
  ├── Chart.yaml
  ├── values.yaml
  └── templates/
  • Chart.yaml: 차트의 메타 정보를 담고 있는 파일입니다.
  • values.yaml: 사용자 정의 값이 들어가는 파일입니다.
  • templates/: Kubernetes 리소스 정의 파일이 들어가는 디렉토리입니다.
values.yaml 파일을 열어 기본 이미지와 포트를 설정해 보겠습니다.
image:
  repository: nginx
  tag: "latest"
service:
  port: 80

4. 차트 배포

이제 Helm 차트를 배포해 보겠습니다. 아래 명령어를 사용하여 my-app 차트를 배포합니다.

helm install my-release ./my-app
my-release는 배포된 Helm 릴리스의 이름입니다. 배포가 성공적으로 이루어지면, 아래와 같은 메시지를 확인할 수 있습니다.
NAME: my-release
LAST DEPLOYED: Fri Sep 23 10:00:00 2023
NAMESPACE: default
STATUS: deployed

5. 배포 확인

Kubernetes 클러스터에서 배포된 리소스를 확인하려면 아래 명령어를 사용합니다.

kubectl get all

이 명령어를 통해 배포된 Pod, 서비스, 그리고 기타 리소스를 확인할 수 있습니다.

6. 차트 업데이트

이제 애플리케이션의 이미지를 업데이트해 보겠습니다. values.yaml 파일에서 tag 값을 "1.19"로 변경해 줍니다.

image:
  repository: nginx
  tag: "1.19"

이제 아래 명령어로 업데이트합니다.

helm upgrade my-release ./my-app

업데이트가 완료되면, 다시 kubectl get all 명령어로 상태를 확인합니다. 새로운 이미지로 업데이트된 것을 확인할 수 있습니다.

7. 롤백

업데이트 후 문제가 발생할 경우, 이전 버전으로 롤백할 수 있습니다. 아래 명령어로 이전 버전으로 롤백해 보겠습니다.

helm rollback my-release 1

여기서 1은 롤백할 이전 버전 번호입니다. 롤백이 완료된 후, 다시 kubectl get all 명령어로 상태를 확인합니다.

8. 차트 삭제

더 이상 필요하지 않은 릴리스는 아래 명령어로 삭제할 수 있습니다.

helm uninstall my-release

이 명령어로 모든 리소스가 삭제됩니다.

마무리

이번 튜토리얼에서는 Kubernetes에서 Helm 차트를 생성하고, 배포하며, 업데이트 및 롤백하는 과정을 단계별로 살펴보았습니다. Helm을 활용하면 복잡한 Kubernetes 리소스를 손쉽게 관리할 수 있으니, 실전에서 유용하게 활용해 보시기 바랍니다.