| 구성요소 | 설명 |
|---|---|
| Helm CLI | 로컬에서 사용하는 명령어 도구 예: helm install, helm upgrade, helm rollback |
| Chart | Kubernetes 리소스(YAML 템플릿) 모음 패키지 애플리케이션을 정의하는 “청사진” 역할 |
| Values.yaml | 사용자 정의 설정값을 넣는 곳 템플릿에서 사용되는 변수값 지정 |
| Release | 하나의 Chart로 클러스터에 설치한 애플리케이션 인스턴스 → 각각 고유 이름을 가짐 ( my-site, dev-site 등) |
| Revision | Release의 버전 기록 (install, upgrade, rollback 할 때마다 생성) |
| Repository | Chart들을 모아둔 저장소 예: Bitnami, AppsCode, TrueCharts 등 |
| Artifact Hub | 전 세계 Helm Chart를 모아놓은 공식 허브 https://artifacthub.io |
| Metadata | Helm이 동작한 이력 및 상태 정보 → Kubernetes 클러스터 안의 Secret 오브젝트에 저장됨 |
mychart/
├── Chart.yaml # Chart 메타 정보
├── values.yaml # 사용자 정의 입력값
├── templates/ # Kubernetes 템플릿 YAML들
│ ├── deployment.yaml
│ └── service.yaml
# values.yaml
replicaCount: 3
image:
repository: nginx
tag: stable
# templates/deployment.yaml
spec:
replicas: {{ .Values.replicaCount }}
containers:
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
helm install my-site bitnami/wordpressbitnami/wordpress Chart를 이용해 my-site라는 이름의 Release 생성helm install dev-site bitnami/wordpress # 개발용
helm install prod-site bitnami/wordpress # 운영용
| Chart 종류 | 제공 리포지토리 |
|---|---|
| WordPress | Bitnami |
| Prometheus | Prometheus Community |
| Redis | Bitnami or Redis Charts |
| Jenkins | Jenkins Chart Maintainers |
| NGINX Ingress Controller | Kubernetes Ingress Team |