[k8s] Helm 사용해보기

🔥Log·2024년 12월 29일
0

k8s

목록 보기
11/15

⚓ Helm ?


Helm은 k8s용 패키지 매니저이다. 여기서 패키지는 k8s 리소스의 집합이고, Helm에서는 이를 '차트'라고 부른다.

k8s에서는 필연적으로 하나의 서버 애플리케이션을 구동하기 위해서는 다양한 k8s 리소스가 필요한데, Helm은 이를 편리하게 관리할 수 있도록 돕는다.



🧙‍♂️ Helm 설치


💡 Helm을 사용하기 위해서는 컴퓨터에 k8s 클러스터가 구동되고 있어야한다. minikube, k3s, kind 등등 로컬에서 k8s 클러스터를 구동할 수 있는 프로그램을 먼저 설치해주자.

설치를 위한 공식문서를 참고하여, 자신의 OS에 맞는 명령어를 통해서 Helm을 설치할 수 있다.

나는 Ubuntu를 사용하고 있으므로, 아래와 같은 명령어로 설치해주었다.

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm


🐋 Helm 사용하기


🧐 Helm 설치

원하는 차트를 설치하기 위해서는 위와 같이 install 명령어를 통해서 설치할 수 있다.

위 명령어는 아래와 같이 구성된다.

  • NAME: 어떤 이름으로 Helm 차트를 설치할 것인지
  • CHART: 어떤 차트를 설치할 것인지
  • flags: 기타 옵션

🧐 Helm 차트 설치하기

💡 설치하고자하는 차트는 Artifact Hub에서 찾을 수 있다.

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-nginx bitnami/nginx --version 18.3.1

예시로 NginX Helm 차트를 설치해보도록 하겠다.
그리고, helm ls 명령어를 실행하면 아래와 같이 정상적으로 설치된 것을 확인할 수 있다.


🧐 Helm 차트 업그레이드

기존에 생성된 차트를 업그레이드를 해야하는 경우엔 아래의 과정을 통해서 업그레이드할 수 있다.

1) 업데이트하고자하는 값을 입력하여 yaml 작성

replicaCount: 3

2) 아래 명령어를 통해서 업그레이드 수행

helm upgrade {Rlease 명} {차트 명} -f {위에서 생성한 yaml 파일}.yaml

// EX
helm upgrade my-nginx bitnami/nginx -f values.yaml

3) 업그레이드 결과 출력

업그레이드가 성공하면, 아래와 같이 업그레이드가 성공했음을 나타내는 결과문이 출력된다.

4) 변경한 설정이 적용됐는지 확인

아래 두 명령어를 통해서 내가 수정한 설정이 잘 적용됐는지도 확인할 수 있다.

helm get values my-nginx
helm get deploy


🧐 Helm 차트 롤백하기

1) 릴리즈 업그레이드 내역 조회

helm history my-nginx

위 명령어를 수행하면, 릴리즈에 대한 업데이트 이력이 출력된다.

현재 Revision은 2인데, 1로 롤백해보도록 하겠다.

2) 롤백

helm rallback my-nginx 1 --dry-run # 롤백이 정상동작할 지 검증하는 명령어
helm rallback my-nginx 1

위 명령어를 통해서 특정 Revision으로 롤백할 수 있다.

3) 결과 확인

릴리즈 내역을 조회해보면, 롤백한 것 또한 잘 기록된 것을 확인할 수 있다.

replicaCount 또한 3에서 1로 롤백된 것을 확인할 수 있다.


🧐 Helm 차트 삭제하기

helm delete my-nginx

위와 같이 특정 릴리즈를 삭제할 수 있고, 릴리즈를 삭제하면 관련된 k8s 자원도 모두 삭제가 된다.

helm delete my-nginx --keep-history

단, 위와 같이 릴리즈 변경 내역은 남겨두고 싶다면 위와 같이 옵션을 붙여주면 되고, 남아 있는 내역을 통해서 다시 롤백할 수도 있다.



☕ 참고


0개의 댓글