클라우드/쿠버네티스

[Kubernetes] 10. 쿠버네티스 패키지 매니저 helm

윤창이 2021. 8. 1. 03:49
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

 

 


[ Helm이란? ] 

 우분투의 apt나 Centos의 yum처럼 쿠버네티스용 패키지 매니지먼트 도구이다.


쿠버네티스 환경에서 배포를 한다고 하면, 단순히 컨테이너를 배포하여 사용하기엔 한계가 있다. 디플로이먼트로 Pod를 배포하여 status에 맞게 관리하여야 하고, 서비스를 배포하여 외부로 IP를 노출시키도 하고, PVC 같은 볼륨 정책적인 부분도 배포해야한다. 이러한 모든 작업을 Helm이라는 도구를 통해 리소스를 한번에 배포해주는 역할을 한다.

 

 CLI 툴인 Helm은 다음과 같이 동작한다.

  • 쿠버네티스 Cluster 안에 Helm Server가 있고, 이를 Tiller라고 부른다.
  • Helm은 이 Tiller와 통신을 하며 배포 명령을 내릴 수 있고, Tiller는 쿠버네티스의 리소스를 배포한다.
  • Helm을 통해 인스톨하는 패키지를 Chart(차트)라고 부른다.
  • Chart는 Helm Chart Repository에 저장된다.
  • 이 리포지토리는 HTTP server를 지원하므로, 구글 클라우드나 깃허브를 통해 끌어올 수 있다.

 


[ Helm 설치 ]

 

https://github.com/helm/helm

 

GitHub - helm/helm: The Kubernetes Package Manager

The Kubernetes Package Manager. Contribute to helm/helm development by creating an account on GitHub.

github.com

 

# brew 패키지 매니지먼트 툴 설치 (준비를 위한 준비..?)
$ sudo apt install linuxbrew-wrapper

# brew를 통해 helm 패키지 매니지먼트 툴 설치
$ brew install helm

# dependencies 설치
$ sudo apt-get install build-essential

# bash_profile에 path관련 환경변수 기입
$ echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >>~/.bash_profile
$ echo 'export MANPATH="/home/linuxbrew/.linuxbrew/share/man:$MANPATH"' >>~/.bash_profile
$ echo 'export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:$INFOPATH"' >>~/.bash_profile

# 기본적인 chart들 가져오기
# git clone https://github.com/helm/charts.git

[ Helm 명령 ]

# repo 업데이트
$ helm repo update

# 설치
$ helm install <stable/패키지명>

# 삭제
$ helm delete <차트명>

# helm 목록 조회
$ helm list

 


 

728x90