What is Helm

Yu Sang Min·2025년 7월 6일

CKA

목록 보기
92/110
post-thumbnail

🎯 Helm이란?

Helm = Kubernetes용 패키지 매니저

  • 복잡한 Kubernetes 애플리케이션을 “하나의 패키지”로 관리하게 해줌
  • kubectl apply -f 수십 개의 YAML 파일을 하나하나 관리하지 않아도 됨
  • Helm은 이를 패키지 단위로 배포, 업그레이드, 롤백, 삭제할 수 있게 함

💣 기존 Kubernetes의 문제점 (Helm 없이)

⚠️ 복잡한 YAML 관리

  • WordPress 예시: Deployment, PVC, Service, Secret, Backup Job 등 최소 6개 이상의 YAML 필요
  • 변경 시 각각 열어서 직접 수정해야 함 (스토리지 크기, 비밀번호, 서비스 포트 등)

⚠️ 유지보수 어려움

  • 업그레이드 시 수많은 YAML 파일 다시 수정
  • 삭제 시 어떤 오브젝트가 앱에 속하는지 다 기억하고 삭제해야 함

✅ Helm이 제공하는 해결책

기능설명
📦 패키징앱 전체를 하나의 **차트(chart)**로 묶어서 관리
⚙️ 커스터마이징values.yaml 한 곳에서 설정 변경 (스토리지, 도메인, 환경변수 등)
⬆️ 업그레이드helm upgrade 명령어 한 번으로 전체 앱을 최신 상태로
↩️ 롤백문제 발생 시 helm rollback으로 이전 상태 복구
🧹 삭제helm uninstall 한 번으로 관련 오브젝트 전부 제거
🔍 추적앱 배포 시마다 버전(revision)을 기록하고 관리 가능

🕹 Helm vs 전통적 방식 비교

기능kubectl (수동)Helm (자동)
설치kubectl apply -f *.yamlhelm install myapp ./chart
설정 변경여러 YAML 수정values.yaml 수정
업그레이드수동 수정 + 재적용helm upgrade myapp ./chart
삭제kubectl delete 반복helm uninstall myapp
롤백수동 복원helm rollback myapp 1

🎮 비유: 게임 설치 vs Helm

  • 게임 = 수천 개 파일 (코드, 이미지, 음악, 설정 등)
  • 게임 설치기 = 모든 파일을 자동 배치 및 구성
  • Helm = Kubernetes 앱 설치기
    → 수많은 리소스를 자동 설치, 구성, 업그레이드, 삭제

💡 요약

Helm = YAML 파일 관리에서 벗어나 Kubernetes 애플리케이션 전체를 하나의 엔티티로 다루게 해주는 도구

  • values.yaml로 설정 통합
  • 배포, 업그레이드, 삭제, 롤백을 단일 명령어로 수행
  • 실무에서는 대형 앱 배포나 GitOps 환경에서 필수 수준의 도구
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글