Helm

  • 쿠버네티스는 하나의 애플리케이션 배포를 위해 수많은 yaml 파일을 작성 수정해야 함
  • helm 은 위의 과정을 해결해줄 수 있는 패키징 툴
    • ubuntu - apt, mac - brew, python - pip 같은 거라고 보면 됨
  • helm-chart는 쿠버네티스 리소스를 하나로 묶은 패키지

Helm 설치하기

Helm | Installing Helm

Helm을 통해 애플리케이션 설치하기

# 설치
helm install wordpress 

# 업그레이드
helm upgrade wordpress

# 롤백
helm rollback wordpress

# 삭제
helm uninstall wordpress

values.yaml 개념

  • 쿠버네티스에서 어플리케이션 배포하기 위해서 설정해야 하는 값들이 무수히 많음
    • 컨테이너 이미지 버전
    • PV, PVC 의 용량
    • Service의 포트
    • 시크릿 키 등등
  • 이 값들은 {{ .values.<var-name> }} 로 템플릿화 됨
  • 그리고 사용자는 values.yaml 에 설정값을 저장하고 변경하면 됨

Chart.yaml 개념

  • 패키지에 대한 정보를 기입한 metadata 파일
  • 차트 작성 또는 다른 유저들에 의해 업로드 된 차트 확인은 다음을 참고

artifacthub 이외 다른 Repository를 추가하고자 한다면

예시)

  • 추가: helm repo add bitnami https://charts.bitnami.com/bitnami
  • 조회: helm repo list
  • Repository 내 차트 검색: helm search repo <chart-name>

artifacthub, bitnami, hashicorp 등 여러가지가 있음.

Repository 통해서 Helm chart 설치하기

helm install <release-name> <chart-name>

  • 다운, 추출, 설치가 진행됨
# 로컬로 받아진 차트 조회
helm list 

# 차트로 생성된 애플리케이션 삭제
helm uninstall <release> 

# install은 하지 않고 다운받고 압축만 풀기
helm pull --untar <chart-name> 

# 압축 푼 chart 설치하기
helm install <release> <chart-path> 
  • helm pull 을 통해 helm chart 파일을 압축해제+다운 받고 values.yaml 파일의 값을 수정해 배포하는 방식으로 주로 사용함.

Resource