helm은 쿠버네티스 패키지 매니저이다. 우리가 알고있는 패키지 매니저는 apt
, yum
, pip
, npm
등이 있다. 이런 툴들과 비슷하게 플랫폼의 패키지를 관리한다.
helm을 이용하여 원하는 패키지를 쿠버네티스에 손쉽게 설치할 수 있다. helm 패키지 또한 YAML
형식으로 구성되어 있으며, 이것을 chart라고 한다.
chart는 helm의 리소스 패키지로, k8s cluster에서 애플리케이션이 기동되기 위해 필요한 모든 리소스들이 포함되어 있다.
helm chart의 구조는 크게 Chart.yaml
, values.yaml
, template
디렉토리 구조로 구성된다.
Deployment
, Service등과
같은 쿠버네티스 리소스가 YAML
파일 형태로 들어가 있다. 각 파일들의 설정값은 비워져 있고 values.yaml
에서 설정한 값들로 채워진다. 차트의 저장소로서, 차트를 모아두고 공유하는 장소이다. (Docker hub와 비슷)
쿠버네티스 클러스터에서 돌아가는 app(chart instance)들은 모두 고유의 release 버전을 가지고 있다.
curl -ssl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
# 버전 확인
helm version --short
# repository 추가
helm repo add stable https://charts.helm.sh/stable
# chart list 확인
helm search repo stable
# chart 업데이트
helm repo update