안녕하세요! 👋 오늘은 쿠버네티스(Kubernetes) 생태계에서 애플리케이션을 배포하고 관리하는 작업을 극적으로 단순화시켜주는 Helm(헬름)에 대해 알아보겠습니다.
하나의 애플리케이션을 배포하기 위해 Deployment, Service, ConfigMap, Secret 등 수많은 YAML 파일을 수동으로 관리하고 계셨나요? 설정 하나 바꾸려고 여러 파일을 뒤적이는 데 지치셨나요? 😫 Helm은 바로 이런 고통을 해결하기 위해 태어난 "쿠버네티스를 위한 패키지 매니저"입니다.
특히 CKA나 CKAD 같은 쿠버네티스 자격증 시험을 준비하신다면, Helm 차트를 처음부터 만드는 복잡한 과정보다는 기존 차트를 활용하여 애플리케이션을 능숙하게 배포하고 관리하는 능력이 핵심적으로 요구됩니다. 오늘 이 글을 통해 시험에 필요한 Helm의 주요 명령어와 개념을 완벽하게 마스터해 보세요!

🎯 Helm의 역할과 기본 개념
Helm을 한마디로 정의하면 "쿠버네티스 패키지 매니저"입니다. 우리가 Ubuntu에서 apt, macOS에서 brew를 사용하듯, 쿠버네티스에서는 helm을 사용해 애플리케이션 패키지를 손쉽게 설치하고 관리할 수 있습니다.

Helm을 사용하기 위해 꼭 알아야 할 4가지 핵심 개념이 있습니다.
- 차트 (Chart) 📜
- 애플리케이션을 배포하는 데 필요한 모든 쿠버네티스 리소스(YAML 템플릿), 설정값, 메타데이터 등을 하나로 묶어놓은 패키지입니다. wordpress-19.0.10.tgz 와 같은 파일이 바로 차트입니다.
- 리포지토리 (Repository) 🏛️
- 차트들을 모아놓고 공유하는 저장소입니다. apt의 리포지토리처럼, 우리는 이 저장소를 우리 로컬 Helm 클라이언트에 등록하고 필요한 차트를 검색하여 사용할 수 있습니다. Bitnami, Elastic 등 여러 공식 리포지토리가 있습니다.
- 릴리스 (Release) 🚀
- 차트를 사용하여 쿠버네티스 클러스터에 실제로 **배포된 인스턴스(instance)**를 의미합니다. 하나의 차트(wordpress)를 사용하여 my-blog와 company-blog라는 두 개의 다른 릴리스를 만들 수 있습니다. 각 릴리스는 독립적으로 관리됩니다.
- 값 (Values) ⚙️
- 차트의 사용자 정의 설정값입니다. 차트는 재사용 가능하도록 만들어졌기 때문에, 이 values.yaml 파일을 통해 이미지 버전, 포트 번호, 리소스 요청/제한 등 거의 모든 것을 사용자가 원하는 대로 덮어쓸(override) 수 있습니다.
🚀 주요 명령어 마스터하기 (설치부터 롤백까지)
시험 환경에서는 Helm이 이미 설치되어 있으므로, 우리는 바로 주요 명령어를 사용하는 데 집중하면 됩니다. WordPress를 배포하는 과정을 예로 들어보겠습니다.
1. 리포지토리 추가 및 업데이트
먼저, 우리가 사용할 차트가 있는 리포지토리를 추가하고 최신 정보를 가져와야 합니다.
# Bitnami 리포지토리를 'bitnami'라는 이름으로 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
# 추가된 모든 리포지토리의 최신 차트 정보를 로컬로 가져오기
helm repo update
2. 차트 검색하기
원하는 애플리케이션 차트가 있는지 검색해 봅시다.
# 'wordpress' 키워드가 포함된 차트를 리포지토리에서 검색
helm search repo wordpress
3. 애플리케이션 설치 (helm install)
이제 검색한 bitnami/wordpress 차트를 사용하여 my-blog라는 이름의 릴리스를 설치해 보겠습니다.
기본 설치:
helm install my-blog bitnami/wordpress
설정값 변경하여 설치 (가장 중요! ✨): 차트의 기본값 대신 우리가 원하는 설정으로 설치하는 방법은 두 가지가 있습니다.
- --set 플래그 사용 (간단한 값 변경 시):
# WordPress 서비스 타입을 NodePort로 변경하고, 사용자 비밀번호를 직접 설정하여 설치 helm install my-blog bitnami/wordpress \ --set service.type=NodePort \ --set wordpressPassword=MySuperSecretPassword123 - -f 또는 --values 플래그 사용 (여러 값 변경 시): 미리 설정값을 담은 my-values.yaml 파일을 만들어 사용하는 것이 효율적입니다.
-
설치 명령어:
helm install my-blog -f my-values.yaml bitnami/wordpress - my-values.yaml 파일:
service: type: NodePort wordpressPassword: MySuperSecretPassword123 resources: requests: memory: "512Mi" cpu: "500m"
-
4. 배포된 릴리스 목록 확인 (helm list)
현재 클러스터에 Helm으로 배포된 릴리스들의 목록과 상태를 확인합니다.
helm list
5. 릴리스 업그레이드 (helm upgrade)
배포된 my-blog 릴리스의 설정을 변경하거나 차트 버전을 올리고 싶을 때 사용합니다. install과 사용법이 거의 동일합니다.
# my-blog 릴리스의 리소스 요청량을 늘려서 업그레이드
helm upgrade my-blog bitnami/wordpress \
--set resources.requests.memory="1Gi"
6. 릴리스 롤백 (helm rollback)
업그레이드 후 문제가 발생했나요? 걱정 마세요! Helm은 릴리스의 변경 이력(revision)을 모두 기록하고 있어 쉽게 이전 버전으로 되돌릴 수 있습니다.
# my-blog 릴리스의 변경 이력 확인
helm history my-blog
# REVISION 1 (이전 버전)으로 롤백
helm rollback my-blog 1
만약 리비전 번호를 생략하면 바로 직전 버전으로 롤백됩니다.
7. 릴리스 삭제 (helm uninstall)
배포했던 릴리스와 관련된 모든 쿠버네티스 리소스를 한 번에 깔끔하게 삭제합니다.
helm uninstall my-blog
📝 시험 환경 꿀팁
- Helm은 미리 설치되어 있습니다: 별도의 설치 과정은 필요 없습니다.
- 공식 문서를 적극 활용하세요: 시험 중에는 helm.sh/docs 공식 문서에 접근할 수 있습니다! 모든 명령어나 옵션을 외울 필요는 없습니다. helm install --set 문법이 헷갈리거나, rollback 사용법이 기억나지 않을 때 빠르게 문서를 찾아보는 능력이 중요합니다. 무엇을 어디서 찾아야 하는지만 파악해 두세요.
✅ 정리하며
Helm은 복잡한 쿠버네티스 애플리케이션을 하나의 '패키지'로 추상화하여 재사용성을 높이고, 배포 및 수명주기 관리를 자동화하는 강력한 도구입니다.
시험 합격은 물론, 실무에서도 Helm을 능숙하게 사용하는 능력은 쿠버네티스 전문가로 성장하기 위한 필수 역량입니다. 오늘 배운 install, upgrade, rollback, list 등의 핵심 명령어를 꼭 손에 익혀두시길 바랍니다!
태그: Kubernetes, Helm, K8s, 쿠버네티스, 헬름, 패키지 매니저, CKA, CKAD, DevOps
'클라우드 > 쿠버네티스' 카테고리의 다른 글
| 🕵️♂️ 내 컨테이너에 무슨 일이? 쿠버네티스 로깅 & 디버깅 삼대장 완전 정복! (0) | 2025.09.03 |
|---|---|
| 🚀 당신의 애플리케이션, 과연 건강한가요? 쿠버네티스 Probes로 스마트하게 관리하기! (1) | 2025.09.03 |
| 🚀 무중단 배포의 마법, Kubernetes Deployment 롤링 업데이트! (4) | 2025.09.02 |
| 🚀 Kubernetes Deployment: 파드를 똑똑하게 관리하고 배포하는 표준 방법 (6) | 2025.09.02 |
| Kubernetes ServiceAccount: Pod에 맞춤형 신분증과 권한을 부여하는 방법 (4) | 2025.09.02 |