
목차
공식 홈페이지
Helm 이란
Helm은 Kubernetes 패키지 매니저로, Linux의 apt/yum이나 macOS의 Homebrew와 같은 역할을 Kubernetes 환경에서 수행합니다.
주요 개념
1. Chart (차트)
- Kubernetes 리소스를 패키징한 번들
- 애플리케이션 실행에 필요한 모든 리소스 정의 포함 (Deployment, Service, Ingress 등)
- YAML 템플릿 파일들로 구성되며, 변수를 통한 커스터마이징 가능
- 버전 관리 가능
2. Repository (저장소)
- Chart를 저장하고 공유하는 공간
- 공식 저장소: Artifact Hub
- 공개/비공개 저장소 모두 지원
- 조직 내부 Chart 공유에 활용
3. Release (릴리즈)
- Kubernetes 클러스터에 설치된 Chart의 인스턴스
- 동일한 Chart로 여러 Release 생성 가능 (예: staging, production)
- Release별 독립적인 설정값(values) 적용
Helm의 장점
- 간편한 배포: 복잡한 애플리케이션을 단일 명령으로 설치
- 재사용성: 검증된 Chart를 여러 환경에 재사용
- 버전 관리: 애플리케이션 버전별 관리 및 추적
- 롤백 기능: 문제 발생 시 이전 버전으로 쉽게 복원
- 템플릿화: Go 템플릿 엔진을 사용한 유연한 설정 관리
- 의존성 관리: Chart 간 의존성 자동 처리
Helm 3의 주요 변화
- Tiller 제거: 클라이언트 전용 아키텍처로 변경 (보안 향상)
- 네임스페이스 기반 Release: Release 정보를 네임스페이스별로 관리
- Secrets 기반 저장: Release 정보를 Kubernetes Secret으로 저장
Helm 설치
1. 스크립트를 이용한 설치 (Linux/macOS)
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
|
2. Homebrew를 이용한 설치 (macOS)
3. apt를 이용한 설치 (Debian/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
|
4. yum/dnf를 이용한 설치 (RHEL/CentOS/Fedora)
5. Chocolatey를 이용한 설치 (Windows)
choco install kubernetes-helm
|
6. 바이너리 직접 다운로드
Helm Releases 페이지에서 최신 버전 다운로드
wget https://get.helm.sh/helm-v3.x.x-linux-amd64.tar.gz tar -zxvf helm-v3.x.x-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm
|
설치 확인
기본 사용법
Repository 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
helm repo update
|
Chart 검색 및 설치
helm search repo nginx
helm show chart bitnami/nginx helm show values bitnami/nginx
helm install my-nginx bitnami/nginx
helm install my-nginx bitnami/nginx -f custom-values.yaml
helm install my-nginx bitnami/nginx --set service.type=LoadBalancer
|
Release 관리
helm list
helm status my-nginx
helm upgrade my-nginx bitnami/nginx --version 15.0.0
helm rollback my-nginx 1
helm uninstall my-nginx
helm history my-nginx
|