ETC

[Helm] Chart 기본 명령어

dev_minpark 2024. 12. 31. 21:55

Helm ?

Helm은 Kubernetes 애플리케이션을 패키징, 배포, 관리, 업그레이드하는 데 사용되는 패키지 관리자이다.

Kubernetes는 여러 리소스(Deployment, Service, ConfigMap 등)를 다루는 데 복잡성이 높아지기 때문에,

Helm은 이러한 리소스들을 Helm Chart라는 단일 단위로 묶어 관리함으로써 배포와 관리를 간소화한다.

 

Helm은 특히 DevOps 워크플로우, CI/CD 파이프라인, 다중 환경 설정 관리에서 강력한 도구로 사용된다.

복잡한 애플리케이션의 배포를 표준화하고, 재사용 가능한 템플릿을 제공하며, 버전 관리 및 롤백 기능을 통해 운영 안정성을 높인다.

 

장점

1. 간편한 애플리케이션 배포

  • 단일 명령어로 복잡한 애플리케이션을 배포하고 관리할 수 있음.

2. 코드 재사용성

  • 템플릿 기반 구성으로 다양한 환경에서 설정을 재사용 가능.

3. 설정 관리 유연성

  • 기본 설정 파일(values.yaml)과 명령줄 오버라이드 기능을 통해 환경별로 쉽게 설정 변경 가능.

4. 복잡성 감소

  • 여러 Kubernetes 리소스를 하나의 릴리스로 묶어 관리하여 작업을 단순화.

5. 버전 관리 및 롤백 지원

  • 애플리케이션의 모든 버전을 기록하며, 문제 발생 시 특정 버전으로 쉽게 롤백 가능.

6. 의존성 관리

  • 애플리케이션의 의존성을 자동으로 해결하고 필요한 의존성을 설치 가능.

7. 커뮤니티 및 에코시스템 지원

  • 공식 및 비공식 차트 저장소에서 다양한 Helm Chart를 활용할 수 있으며, 클라우드 제공업체 및 오픈소스 프로젝트와의 호환성도 높음.

8. DevOps 및 CI/CD 통합

  • Jenkins, GitLab, ArgoCD 등과 통합하여 Kubernetes 배포 파이프라인을 자동화 가능.

9. 복잡한 애플리케이션 지원

  • StatefulSet, DaemonSet, Ingress 등 다양한 Kubernetes 리소스를 지원하며, 대규모 애플리케이션도 쉽게 배포 가능.

10. 커스텀 리소스 정의(CRD) 지원

  • 기본 Kubernetes 리소스 외에도 사용자 정의 리소스(CRD)를 지원하여 확장 가능성을 제공.

11. 멀티 클러스터 관리

  • 여러 Kubernetes 클러스터에서 애플리케이션 배포 및 관리를 통합적으로 수행 가능.

12. 풍부한 차트 저장소

  • Helm Hub 및 다양한 공개 저장소에서 준비된 차트를 활용 가능.

 

설치

#MAC
brew install helm

#버전 확인
helm version

 

명령어 설명

helm version Helm #버전 확인

helm repo add <REPO_NAME> <REPO_URL> #Helm 저장소 추가

helm repo update #저장소 업데이트

helm search repo <CHART_NAME> #저장소에서 차트 검색

helm install <RELEASE_NAME> <CHART_NAME> #차트 설치

helm list #설치된 릴리스 확인

helm uninstall <RELEASE_NAME> #릴리스 삭제

helm status <RELEASE_NAME> #릴리스 상태 확인

helm template <RELEASE_NAME> <CHART_NAME> #템플릿 YAML 출력

helm pull <CHART_NAME> --untar #차트 다운로드 및 압축 해제

helm create <CHART_NAME> #새로운 Helm 차트 생성

 

'ETC' 카테고리의 다른 글

[Hey] HTTP 로드 테스트 도구  (0) 2024.12.13
VertexAI API 사용하기 위해 GoogleCloud 설정  (1) 2024.10.11
[RabbitMQ] Exchange Type  (0) 2024.08.01
[Intellij] 환경 변수 로컬 세팅  (0) 2024.07.17