Search
Duplicate

helm과 helm operator

Created By
Status
완료
Type
Created
2022/12/13 23:24
Last Edited Time
2022/12/13 23:24
Last Edited By
Date
Week
0

helm이란?

쿠버네티스 애플리케이션을 패키지 형태로 손쉽게 관리할 수 있도록 도와주는 도구이다.
yaml 은 정적 파일이기 때문에 리소스별로 yaml파일을 만들어야하는데 리소스가 많아질 경우 yaml 파일에 대한 유지보수가 힘들어진다.
helm은 하나의 템플릿을 통해 yaml 파일을 동적으로 생성해준다.
helm 패키지 또한 yaml 형식으로 구성되어 있으며, 이것을 helm-chart라고 한다.
차트를 모아두고 공유하는 장소를 Repository(저장소)라고 한다.

helm chart 구조

helm chart의 구조는 크게 `templates` 디렉토리와 `values.yaml`로 구성된다.
templates: 설치할 리소스 파일들이 존재하는 디렉토리이다. 해당 디렉토리 안에는 Deployment, Service 등과 같은 쿠버네티스 리소스가 yaml 파일 형태로 들어가 있다. 각 파일들의 설정값은 비워져 있고(placeholder) values.yaml의 설정값들로 채워진다.
values.yaml: 각 인프라 설정에 따라서 세부적으로 사용자가 원하는 값들을 설정하는 파일이다.
하나의 차트로 여러 환경에 쉽게 배포가 가능하다.
위 그림과 같이 같은 nginx 서버라도 운영과 개발을 나누거나 웹서버로 사용하거나 프록시 섯버로 사용하기도 한다.
이 때 nginx template은 상황에 따라 변하지 않는 공통 부분이기 때문에 template은 하나로 사용하고 구성에 따라 다른 values.yaml 파일을 사용하여 여러 어플리케이션을 생성할 수 있다.

Helm 구조

helm 버전 2와 버전 3의 주요 차이점은 Tiller가 없어졌다는 점이다.
Tiller와 Client는 서로 gRPC로 통신했으나 버전 3부터는 Client에서 바로 API Server로 요청한다.
또한 Chart를 설치하는 RBAC권한은 사용자가 사용한 kubeconfig를 활용하는 방식으로 수정되었다.

helm operator