Helm이란?

NO Image

Helm이란?

  • 여러가지 k8s yaml들을 package로 관리하고 싶을때 사용하는 도구이다.

Concept

  • Chart
    • Kubernetes의 Resource를 생성하기 위한 모든 것이 정의 된 것
    • (homebrew formula, apt dpkg, yum rpm file과 동일한 컨셉)
  • Repository
    • Chart를 저장 및 공유 할 수 있는 공간
  • Release
    • Chart를 통해 Kubernetes의 Resource로 instance화 한 것

Helm Getting Started

  • Helm 설치하기
    brew install helm
    
  • Helm Repository 등록하기
    helm repo add stable https://charts.helm.sh/stable
    helm repo list
    
  • Helm을 통해 인스턴스화 해보기
    helm install stable/mysql --generate-name
    
  • 인스턴스 확인하기
    helm ls
    
  • Helm을 통해 인스턴스화 다시 제거하기
    helm uninstall smiling-penguin
    

Helm Chart에 대해

  • Helm Create 생성
❯ helm create helm-example
Creating helm-example

.
└── helm-example
    ├── Chart.yaml - Chart의 정보를 정의하는 파일로 Chart의 이름, 버전 등을 정의
    ├── charts - dependency chart 파일들이 해당 디렉토리 아래에 생기게 됩니다.
    ├── templates - k8s 리소스 템플릿이 보관되는 디렉토리
    │   ├── NOTES.txt - Chart를 설치 후 출력되는 내용을 정의
    │   ├── _helpers.tpl
    │   ├── deployment.yaml
    │   ├── hpa.yaml
    │   ├── ingress.yaml
    │   ├── service.yaml
    │   ├── serviceaccount.yaml
    │   └── tests
    │       └── test-connection.yaml
    └── values.yaml - 템플릿에 사용될 변수들을 모아놓은 파일

4 directories, 10 files
  • templats
    • 예약어들을 통해 values.yaml 값을 읽어 주입하여 실행할 수 있다.

  • chart hook
    • 차트가 실행하는 과정에 원하는 pod들을 실행할 수 있다.
annotations:
  "helm.sh/hook": post-install

Reference

0%