Helm이란?

  • Helm은 쿠버네티스(Kubernetes) 애플리케이션의 패키지 관리 도구
  • 복잡한 쿠버네티스 애플리케이션을 쉽게 설치, 업그레이드, 관리할 수 있도록 도와주며, 쿠버네티스 환경에서의 소프트웨어 배포를 간소화할 수 있게 도와줌

 

Helm 사용 이유

  1. 복잡한 쿠버네티스 애플리케이션 관리 단순화
    - 쿠버네티스 다양한 리소스(Pod, Service, Deployment 등)를 개별적으로 관리하는 것은 매우 복잡 Helm을 통해 리소스들을 차트(Chart)라는 하나의 패키지로 묶어 관리함으로써 배포 및 관리를 단순화
    - 수많은 컴포넌트로 구성된 마이크로서비스 아키텍처의 애플리케이션을 관리할 때 Helm이 매우 효율적
     
  2. 일관된 배포 및 재사용성 확보
    - Helm 차트는 재사용이 가능하므로 동일한 애플리케이션을 여러 환경(개발, 스테이징, 프로덕션)에 일관되게 배포 가능
    - Helm 저장소(Repository)를 통해 다른 사람들과 차트를 공유 → 애플리케이션 배포를 표준화하고 생산성 증가
     
  3.  간편한 애플리케이션 업데이트 및 롤백
    - Helm은 애플리케이션의 버전 관리를 지원하므로 업데이트 및 롤백을 쉽게 수행 가능
    - 애플리케이션 배포 과정에서 발생할 수 있는 오류를 최소화하고 안정성을 높일 수 있음
     
  4.  설정 관리의 효율성 향상
    - Helm은 values.yaml 파일을 통해 애플리케이션의 설정을 분리하여 관리할 수 있도록 지원
    - 환경별로 다른 설정을 적용해야 하는 경우에도 유연하게 대처 가능
     
  5.  자동화된 배포 파이프라인 구축 용이
    - Helm은 CI/CD(Continuous Integration/Continuous Delivery) 파이프라인과 통합하여 자동화된 애플리케이션 배포를 구축하는 데 유용
    - 애플리케이션 배포 과정을 자동화하고 배포 빈도를 높일 수 있음

 

Helm 3가지 주요 개념

1. Chart

  • helm의 리소스 패키지로 k8s cluster에서 애플리케이션을 기동하기 위해 필요한 모든 리소스가 포함
  • Chart 구성 요소
    1. Chart.yaml : 차트의 이름, 버전 등 기본적인 메타 정보를 정의
    2. templates : kubernets에 배포될 리소스들의 manifest 탬플릿들을 포함 → 오브젝트들의 yaml 파일 포함 디렉토리
    3. charts : dependency가 있는 chart 파일들의 저장 디렉토리
    4. values.yaml : 템플릿에 사용될 변수(value) 값들을 정의
.
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml

 

2. repository

  • 차트를 모아두고 공유하는 장소
  • docker hub와 같은 공간

 

3. release

  • k8s cluster에서 구동되는 Chart 인스턴스
  • 일반적으로 동일한 Chart를 여러 번 설치할 수 있고 이는 새로운 Release로 관리
  • Release될 때 패키지된 차트와 Config가 결합되어 정상 실행

※k8s cluster 내부에 Helm Chart를 원하는 Repository에서 검색 후 설치 → 각 설치에 따른 새로운 Release 생성 순서로 진행

 

 

Helm 다운로드

최신 버전을 설치 방법

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

 

 

특정 버전 수동 다운로드 후 설치 방법

헬름 다양한 OS들을 위한 바이너리 릴리스를 제공 : https://github.com/helm/helm/releases

  1. https://github.com/helm/helm/releases에서 원하는 헬름 버전 다운로드
  2. 압축해제 (tar -zxvf helm-v3.0.0-linux-amd64.tar.gz)
  3. 압축해제된 디렉토리에서 helm 파일을 찾아서, 원하는 목적지로 이동 (mv linux-amd64/helm /usr/local/bin/helm)

 

다운로드 후 헬름 버전 확인

$ helm version
version.BuildInfo{Version:"v3.19.0", GitCommit:"3d8990f0836691f0229297773f3524598f46bda6",
GitTreeState:"clean", GoVersion:"go1.24.7"}

 

 

Helm 다운로드 가이드 : https://helm.sh/ko/docs/intro/install/

 

헬름 설치하기

헬름 설치하고 작동하는 방법 배우기.

helm.sh

 

 

+ Recent posts