helm, helm chart란 무엇인가?
helm 은 쿠버네티스를 위한 패키지 매니저다.
예시)
- ubuntu의 apt
- Mac의 brew
- Node의 npm
위와 같이 패키지를 설치, 업데이트, 수정, 삭제하는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴이다.
그리고 helm 은 쿠버네티스용 패키지 매니저라고 생각하면 되겠다. 그리고 여기서 패키지는 쿠버네티스 리소스를 하나로 묶은 helm chart 다. 여기서 말하는 helm chart 란 YAML파일의 묶음(패키지)으로, 이 묶음을 public 혹은 private registry에 push해두고, helm 명령어를 활용해 helm chart 를 설치하여 쿠버네티스 리소스를 배포할 수 있다.
- service : pod를 외부 IP를 노출시카기 위해 서비스가 필요하다.
- deployment : pod를 관리하기 위해 deployment가 필요하다.
- statefulset : database와 같은 stateful application을 위해 필요하다
- configmap : external configuration 설정을 위해 필요하다
- secret : credential과 같은 교다et한 정보들을 저장하기 위해 필요하다.
그리고 위와 같은 object들을 생성하기 위해서는 각각 마다 yaml을 생성해주어야 한다. 그리고 위와 같은 yaml파일들을 사전에 정의해두고 패기징 한 뒤에 추후에 쿠버네티스 클러스터에 어플리케이션을 배포할 때 위와 같은 object들을 쉽게 배포하기 위해 패키징한게 바로 helm-chart 다.