1. Helm을 사용해야 하는 이유

기존의 YAML 파일 사용

  • cluster에서 app을 생성하고 배포하기 위해 사용
  • service, pod, configmap 등의 yaml 파일이 필요

BUT

  • 각 App마다 다수의 yaml 파일 존재
  • 각 배포 환경마다 다수의 app이 존재 그리고
  • yaml은 정적파일이기 때문에 resource 별로 파일 필요
  • 위와 같이 많은 resource를 관리하면 다수의 yaml 파일에 대한 유지보수가 힘들어짐

HELM이 필요

2. Helm이란

  • Kubernetes pakage manager
  • 하나의 template을 통해 yaml 파일을 동적으로 생성하게 해주는 Tool

  • Helm 구조

장점1

- 기존 yaml 파일 배포 방식

  1. app 생성

  1. QA환경 배포

-> 1번과 2번 과정을 보면 매우 유사한 형식의 ymal 파일들이 조금씩만 바뀌어서 반복되고 있는 것을 확인할 수 있음

- Helm을 이용한 배포 방식

-> 기존의 방식과 달리 변화하는 부분을 변수처리하고 helm command에서 이를 변경해 가면서 설치함

-> 새로운 yaml 파일을 추가할 필요 없이 명령만 추가해주면 됨.

장점2

  • 오픈소스들을 쉽게 kubernetes에 배포할 수 있음
  • 오픈소스를 배포하는 사람들은 자신의 프로그램을 다른사람들이 쉽게 사용할 수 있도록하는 것.
    1. 제품별로 module을 나누어 원하는 module만 설치할 수 있도록 함
    2. 사용자 환경에 따라 사용할 수 있는 명령어 정리해 놓아야 함