[K8s] helm 이해하기

Kaite.Kang·2025년 4월 12일

helm의 목적

helm은 chart라고 불리는 쿠버네티스 패키지를 관리하는 도구이다. 리눅스에서 패키지를 관리하기 위해 패키지 관리 도구인 yum, dnf, apt 를 사용하 듯이 쿠버네티스에서도 패키지를 관리하기 위해 helm 을 사용할 수 있다.
쿠버네티스에서 helm 을 사용하지 않고도 애플리케이션을 배포나 관리할 수 있지만 하나의 애플리케이션을 동작시키기 위해 배포된 여러 리소스를 관리하기에는 번거로움이 있다. helm은 애플리케이션 배포, 업데이트, 롤백을 간편하게 할 수 있도록 돕는다.

helm 의 개념

helm의 아키텍처를 이해하기 위해서는 아래 세가지 개념을 알아두어야 한다.

  • Chart 쿠버네티스 애플리케이션을 설치하기 위해 필요한 파일들을 모아둔 설치 패키지이다. 예를 들어, 어떤 앱을 설치할지, 어떤 리소스를 만들지 등의 정보가 들어있다.

  • Config: Chart 안에 있는 기본 설정값을 사용자 환경에 맞게 바꾸는 설정 파일이다. 예를 들어, 앱을 몇 개 실행할지, 어떤 이름을 쓸지 등을 여기서 정할 수 있다.

  • Release: Chart + Config가 실제로 쿠버네티스에 설치되어 실제로 돌아가고 있는 앱 인스턴스이다. 같은 Chart를 여러 번 설치하면, 서로 다른 설정으로 여러 개의 Release를 만들 수 있다.

한마디로 정리하자면,
Chart는 설치 도구,
Config는 맞춤 설정,
Release는 실제로 설치돼서 돌아가는 결과물이다.

helm 구성 요소

Helm는 Client와 Library로 역할을 분리되어 있다.

  • Helm Client: 사용자가 Helm을 조작할 수 있도록 하는 명령어 도구이다. 차트 개발, 저장소 관리, 릴리스 요청 등의 작업 수행한다.
  • Helm Library: Helm의 내부 동작 로직이 담긴 라이브러리이다. 쿠버네티스와 직접 통신하여 실제 설치, 업그레이드, 삭제 등을 처리한다.

그림으로 구성 요소간 관계를 살펴보자면 아래와 같다.

0개의 댓글