상세 컨텐츠

본문 제목

Helm Chart 란 무엇인가. ?

Helm

by yiaw 2021. 11. 5. 10:09

본문

k8s 에서 패키지 매니저로 사용하는 Open Source다. 

패키지 매니저가 무엇을 뜻하는 것일까?.

 

예를들어 우리가 k8s에서 Mysql 이라는 서비스를 사용하기 위해서는 최소 

pod와 클러스터 외부 또는 클러스터 내부에서 접근하기 위한 service가 필요할 것이다. 

(여기서 말하는 service는 k8s 리소스를 의미하는것이다. )

 

pod 와 service를 배포하기 위해서는 우리는 어떠한 규칙이 존재하는 YAML 형식의 파일을 작성 할 것이다. 

우리가 Mysql 서비스를 사용해야할 k8s Cluster가 2개가 있다고 가정하자. 

 

Cluster1 에서 먼저 서비스를 Deploy 후 

Cluster1 에서 사용한 YAML 파일들을 복사하여  

Cluster2 에 설정하고 

Cluster2 환경에 맞게 각 값들을 하나하나 바꿔주는 작업을 해야할 것이다. 

 

이런식으로 작업하는데에는 휴먼에러를 발생 시킬 가능성을 높인다. 

때로는 pod.yaml 파일과 service.yaml 파일에 동일하게 설정해야 하는 값들이 존재 한다면 

매번 새로운 Cluster에 서비스를 Deploy시 모든 YAML 파일들의 값을 찾아가며 변경 해줘야 하기 때문이다. 

 

가벼운 예시로는 Cluster1에서 Deploy.yaml 와 Service.yaml에 설정할 서비스 포트의 번호가 8080이며 
Cluster2에서는 8090으로 Deploy 해야한다면 Cluster2번에서는 Deploy.yaml, Service.yaml 파일의 값들을 확인해가면서 설정해줘야 할것이다.

 

 

실제 서비스를 구성하기위해서는 더 많은 Yaml 파일들이 존재하며, 각 k8s 리소스들이 유기적으로 동작하기 위해서는 

동일하게 설정 되는 값들에 대해 일일 찾아서 변경 해야한다면 !! 아무리 꼼꼼하게 Check를 해도 !! 반드시 많은 작업을 시간을 소요할 것이며 오류는 더 많이 발생 할 것이다.

 

우리는 앞서 설명에서 규칙이 존재한다고 했는데 

이 규칙을 통일화 시키고 규칙(Templates) 속에서 각 값(Values.yaml)들을 설정 하는 작업을 할 수 있다. 

 

다르게 표현하면 뼈(Templates)와 살(Values.yaml)을 분리해서 살들만 잘 채워 준다면 어떤 클러스터에서도 손쉽게 서비스를 Deploy 시켜줄 수 있을 것이다. 

 

 

 

다음장에서는 Helm Chart 설치 방법에 대해서 포스팅을 진행하겠다.

'Helm' 카테고리의 다른 글

Helm Chart 구조  (0) 2021.11.05
Helm 설치  (0) 2021.11.05

관련글 더보기

댓글 영역