본문 바로가기
카테고리 없음

Helm을 이용한 Kubernetes 애플리케이션 배포 방법

by sum_mit45 2024. 11. 6.
728x90
반응형
11월 6일(수) 수업 내용 중

 

Kubernetes 환경에서 애플리케이션을 관리하는 것은 복잡한 작업이 될 수 있다. 여러 Pod, Service, Volume 등을 개별적으로 관리하고 배포하려면 많은 작업을 거쳐야 한다. 이를 해결하기 위해 Kubernetes에서 제공하는 패키지 관리 도구Helm을 사용하여 애플리케이션을 손쉽게 배포하고 관리할 수 있다. 

 

1. Helm 개요

출처: https://kubebyexample.com/learning-paths/argo-cd/argo-cd-working-helm

  • Helm은 Kubernetes 애플리케이션을 배포하고 관리하기 위한 도구
  • Kubernetes에서 애플리케이션을 배포할 때 Pod, ReplicaSet, Deployment, Service여러 리소스를 개별적으로 관리해야 하지만, Helm을 사용하면 이러한 작업들을 패키지 형태로 묶어 한 번에 배포하고 관리할 수 있다.
  • Helm은 애플리케이션의 버전 관리를 지원하며, 여러 환경에서의 설정을 손쉽게 관리할 수 있도록 도와준다.

2. Helm 설치

Helm을 설치하려면, 먼저 설치 스크립트를 다운로드하고 실행해야 한다.

https://helm.sh/ko/docs/intro/install/

 

헬름 설치하기

헬름 설치하고 작동하는 방법 배우기.

helm.sh

위 사이트에서 헬름 설치 가이드가 잘 나와있다. 

 

2.1 Helm 설치 스크립트

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

2.2 Helm 설치 스크립트

helm version

 

설치가 정상적으로 완료되었다면 Helm의 버전 정보가 출력된다.

설치된 helm 버전확인

 

3. Helm을 사용한 애플리케이션 설치

Helm을 설치한 후에는 다양한 애플리케이션을 Kubernetes 클러스터에 배포할 수 있다. 이번 실습에서는 Helm을 이용하여 nginx와 같은 애플리케이션을 설치해보았다.

3.1 Helm 저장소 추가

Helm에서 애플리케이션은 Helm Chart라는 패키지 형태로 제공된다. Helm Chart를 이용하려면 먼저 Helm 저장소를 추가해야 한다.

# vweb 레포지토리 추가
helm repo add vweb https://kiamol.net

# bitnami 레포지토리 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
 
 

저장소가 추가되면, helm repo list 명령어로 등록된 저장소 목록을 확인할 수 있다.

helm repo list

helm 저장소 추가 후 저장소 목록 확인

3.2 애플리케이션 검색 및 다운로드

Helm 저장소에 등록된 애플리케이션을 검색하려면 helm search repo 명령어를 사용하면 된다.

# vweb 애플리케이션 검색
helm search repo vweb

# nginx 애플리케이션 검색
helm search repo nginx
애플리케이션 검색
 

검색 결과에 따라 원하는 애플리케이션을 다운로드한다.

# nginx 애플리케이션 다운로드
helm pull bitnami/nginx

 

3.3 애플리케이션 배포

애플리케이션 다운로드 후, Chart를 압축 해제하여 필요한 설정을 변경한 뒤 배포할 수 있다.

# 다운로드한 파일 압축 해제
tar -xvf nginx-*.tgz

 

 

helm show values 명령어를 사용하면 해당 Chart의 설정값을 확인할 수 있다.

helm show values bitnami/nginx

 

 

설정값을 확인하고 원하는 환경 변수들을 설정한 후, helm install 명령어로 애플리케이션을 배포하면 된다.

helm install nginx -f values.yaml .

 

 

설치가 완료되면 kubectl get pods 명령어로 배포된 Pod 상태를 확인할 수 있다.

helm 명령어로 배포한 애플리케이션 확인

4. 원격 서버에 애플리케이션 배포

원격 서버에 배포하는 경우, Helm 저장소를 추가하고 애플리케이션을 설치하는 과정은 동일하다.

예를 들어, kiaml/vweb 애플리케이션을 설치하는 방법은 아래와 같다.

 

1. Helm 저장소 추가 및 업데이트

helm repo add kiamol https://kiamol.net/
helm repo update

 

2. 애플리케이션 설치

helm install --set servicePort=8010 --set replicaCount=2 vweb kiamol/vweb --version 1.0.0

 

3. 설치 후 Pod 상태 확인

kubectl get pods

 

같은 방법으로 vweb 배포

5. 애플리케이션 관리

 
 
 

 

Helm을 사용하면 배포한 애플리케이션을 쉽게 관리할 수 있다. 설치된 애플리케이션을 확인하려면 helm ls 명령어를 사용하고, 배포된 리소스 상태kubectl get pods로 확인할 수 있다.

또한, Helm을 사용하여 배포된 애플리케이션을 업그레이드하거나 삭제하는 것도 매우 간편하다. 

728x90
반응형