11월 6일(수) 수업 내용 중
Kubernetes 환경에서 애플리케이션을 관리하는 것은 복잡한 작업이 될 수 있다. 여러 Pod, Service, Volume 등을 개별적으로 관리하고 배포하려면 많은 작업을 거쳐야 한다. 이를 해결하기 위해 Kubernetes에서 제공하는 패키지 관리 도구인 Helm을 사용하여 애플리케이션을 손쉽게 배포하고 관리할 수 있다.
1. Helm 개요
- Helm은 Kubernetes 애플리케이션을 배포하고 관리하기 위한 도구
- Kubernetes에서 애플리케이션을 배포할 때 Pod, ReplicaSet, Deployment, Service 등 여러 리소스를 개별적으로 관리해야 하지만, Helm을 사용하면 이러한 작업들을 패키지 형태로 묶어 한 번에 배포하고 관리할 수 있다.
- Helm은 애플리케이션의 버전 관리를 지원하며, 여러 환경에서의 설정을 손쉽게 관리할 수 있도록 도와준다.
2. Helm 설치
Helm을 설치하려면, 먼저 설치 스크립트를 다운로드하고 실행해야 한다.
https://helm.sh/ko/docs/intro/install/
위 사이트에서 헬름 설치 가이드가 잘 나와있다.
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의 버전 정보가 출력된다.
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
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 상태를 확인할 수 있다.
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
5. 애플리케이션 관리
Helm을 사용하면 배포한 애플리케이션을 쉽게 관리할 수 있다. 설치된 애플리케이션을 확인하려면 helm ls 명령어를 사용하고, 배포된 리소스 상태를 kubectl get pods로 확인할 수 있다.
또한, Helm을 사용하여 배포된 애플리케이션을 업그레이드하거나 삭제하는 것도 매우 간편하다.