1️⃣ Kubernetes에서 Helm이 필요한 이유?
Kubernetes에서 애플리케이션을 배포할 때, 여러 개의 YAML 파일을 관리해야 합니다.
예를 들어, 하나의 애플리케이션을 배포하려면 다음과 같은 리소스를 정의해야 합니다.
📌 기본 배포 구성 요소
• deployment.yaml → 애플리케이션 배포
• service.yaml → 네트워크 연결 (Service)
• ingress.yaml → 도메인 연결 (Ingress)
• configmap.yaml → 환경 변수 관리
✅ 파일이 많아질수록 배포 및 관리가 어려워집니다.
✅ Helm을 사용하면 하나의 Chart로 여러 개의 Kubernetes 리소스를 손쉽게 관리할 수 있습니다.
2️⃣ Helm이란?
📌 Helm은 Kubernetes 애플리케이션을 배포하는 패키지 매니저입니다.
📌 Helm Chart를 사용하면 Kubernetes 리소스를 템플릿화하고 쉽게 배포할 수 있습니다.
✅ YAML 파일을 하나의 패키지(Chart)로 관리 가능
✅ 버전 관리 및 롤백 지원
✅ 값(Values.yaml)을 변경하여 유연하게 배포 가능
📌 Helm 구조
애플리케이션 (my-app)
⬇
Helm Chart (배포 패키지)
⬇
Kubernetes 리소스 (Deployment, Service, Ingress 등)
3️⃣ Helm 설치하기
Helm을 사용하려면 먼저 설치해야 합니다.
📌 Helm 설치 명령어 (Linux/Mac)
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
📌 Helm 설치 확인
helm version
✅ Helm이 정상적으로 설치되었는지 확인!
4️⃣ Helm Chart 생성 및 배포하기
이제 Helm을 사용하여 애플리케이션을 배포해보겠습니다.
✅ Step 1: 새로운 Helm Chart 생성
helm create my-app
📌 디렉토리 구조
my-app/
├── charts/ # 종속 Chart 저장
├── templates/ # Kubernetes 리소스 템플릿
│ ├── deployment.yaml # Deployment 템플릿
│ ├── service.yaml # Service 템플릿
│ ├── ingress.yaml # Ingress 템플릿 (옵션)
│ └── _helpers.tpl # Helm 템플릿 헬퍼 파일
├── values.yaml # 기본 설정 값
├── Chart.yaml # Chart 메타데이터
└── README.md # 설명 파일
✅ Helm Chart가 생성됨!
✅ Step 2: values.yaml 수정하기
values.yaml 파일을 수정하여 배포될 애플리케이션 설정을 정의합니다.
📌 values.yaml 예제
replicaCount: 2
image:
repository: nginx
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
✅ values.yaml 파일을 수정하면 배포 설정을 쉽게 변경할 수 있음!
✅ Step 3: Helm Chart 배포하기
📌 Helm으로 배포하기
helm install my-release my-app/
📌 배포된 Helm 릴리스 확인
helm list
📌 배포된 리소스 확인
kubectl get all
✅ helm install 명령어 하나로 여러 개의 Kubernetes 리소스를 한 번에 배포 가능!
✅ Step 4: Helm 값 변경 후 업그레이드
values.yaml 파일을 수정하고 다시 배포할 수도 있습니다.
📌 설정 변경 후 업그레이드
helm upgrade my-release my-app/
✅ Helm을 사용하면 애플리케이션을 쉽게 업데이트할 수 있음!
5️⃣ Helm Chart 버전 관리 및 롤백
Helm은 배포 히스토리를 저장하며, 특정 버전으로 롤백할 수도 있습니다.
📌 배포 히스토리 확인
helm history my-release
📌 이전 버전으로 롤백
helm rollback my-release 1
✅ Helm을 사용하면 문제가 발생했을 때 빠르게 롤백할 수 있음!
6️⃣ Helm 패키지 저장소 (Helm Repository)
Helm Chart를 로컬에서만 사용할 수도 있지만,
Helm 저장소(Repository)에 업로드하면 다른 환경에서도 쉽게 배포 가능합니다.
📌 Helm Repository 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
📌 Helm Chart 검색
helm search repo nginx
📌 Helm Chart 다운로드
helm pull bitnami/nginx
✅ Helm Repository를 사용하면 미리 패키징된 Chart를 쉽게 다운로드 가능!
7️⃣ Helm을 활용한 실제 애플리케이션 배포 예제
Helm을 사용하여 Nginx 웹 서버를 배포해보겠습니다.
📌 Nginx Helm Chart 배포
helm install my-nginx bitnami/nginx
📌 배포된 서비스 확인
kubectl get svc
📌 웹 브라우저에서 접속
http://<Node IP>:<NodePort>
✅ Helm을 사용하면 한 줄의 명령어로 Nginx를 배포 가능! 🚀
📌 결론: Helm을 사용하면 Kubernetes 배포가 훨씬 쉬워진다!
기능설명
Helm Chart | Kubernetes 리소스를 패키지화 |
Helm Install | 한 번의 명령어로 배포 가능 |
Helm Upgrade | 값 변경 후 손쉽게 업그레이드 |
Helm Rollback | 이전 버전으로 빠르게 복구 |
Helm Repository | 미리 정의된 Chart 다운로드 가능 |
🔥 Helm을 사용하면 Kubernetes 애플리케이션을 더 쉽게, 빠르게, 안정적으로 배포 가능! 🚀
'Kubernetes > Kubernetes Basics' 카테고리의 다른 글
📌 Kubernetes HPA: 자동 확장으로 효율적인 리소스 관리하기 (0) | 2025.03.03 |
---|---|
📌 Kubernetes 모니터링과 로깅: 운영 환경을 안정적으로 유지하기 (0) | 2025.03.03 |
📌 Kubernetes Ingress: 도메인 기반 트래픽 관리 이해하기 (0) | 2025.03.03 |
📌 Kubernetes Service: 로드 밸런싱과 네트워크 설정 이해하기 (0) | 2025.03.03 |
📌 Kubernetes 아키텍처 완벽 분석: Master Node와 Worker Node의 역할 (0) | 2025.03.02 |