연재 시리즈

Helm 시작하기 - 3편. helm 차트 생성

악분 2021. 11. 22. 20:30
반응형

3편은 영상 7:10 ~ 14:35를 설명합니다.

https://youtu.be/ajcyC_6velc?t=430 

 

 

1. 선수지식

yaml파일을 이용해서 쿠버네티스 리소스(예: deployment, service 등) 배포하는 방법을 알아야 합니다.

 

2. helm 차트 필수파일

helm 차트를 구성하는 파일은 [그림 1]처럼 정말 많습니다. 하지만, 이 파일이 전부 필요한 것은 아닙니다. 꼭 필요한 파일은 templates 디렉터리, ②Chart.yaml, ③values.yaml파일만 필요합니다.

그림1 helm 차트 설명(참고자료: https://helm.sh/docs/topics/charts/#the-chart-file-structure)

 

크게 구조를 보면, templates 디렉터리와 기타파일로 나눌 수 있습니다.

그림2 helm 차트 구조

 

 

3. templates 디렉터리

templates 디렉터리에는 배포할 쿠버네티스 리소스의 yaml파일들이 있습니다. helm 차트가 설치되면 실제 쿠버네티스에 배포되는 리소스들입니다.

 

설정방법은 간단합니다. 실제로 실행되는 yaml파일을 templates 디렉터리에 위치시키면됩니다. 아래 예제에서는 실제로 실행되는 nginx deployment.yaml과 nginx service.yaml파일을 templates 디렉터리에 위치시켰습니다.

yaml파일 내용: https://github.com/choisungwook/portfolio/wiki/nginx_sample#deployment-service

 

그림3 templates 예제

 

4. Chart.yaml - 차트 메타정보

Chart.yaml파일은 helm 차트가 설치될 때 (메타)정보를 설정합니다. 설정할 수 있는 차트정보가 매우 많습니다. 

그림4 Chart.yaml에서 설정할 수 있는 정보(출처: https://helm.sh/docs/topics/charts/#the-chartyaml-file)

 

하지만! 전부 입력하지 않아도 됩니다. 3개 정보만 필수이고 나머지는 선택입니다. 필수 필드는 required라고 표시되어 있습니다. 필수 필드는 아래와 같습니다. 

필드이름 기능
apiVersion helm api 버전(2021년 기준 v2가 최신)
name helm 차트 이름
version helm 차트 버전(helm 차트 버전으로 관리할 때 사용, 예: 0.0.1)

 

필수 정보만 입력한 Chart.yaml은 아래와 같습니다.

apiVersion: v2
name: test-charts
version: 0.0.1

 

지금까지 templates디렉터리와 Chart.yaml파일을 작성했습니다. 구조는 아래와 같습니다.

그림4 차트 구조


5. values.yaml - template 값 설정

values.yaml파일은 templates에 있는 yaml파일 필드 값을 설정할 수 있는 파일입니다. 이 글에선느 다루지 않고 5편에서 다룰 예정입니다. 우선 내용이 없는 빈 파일을 만듭니다.

touch values.yaml

 

 

6. 마치며

helm 차트 작성은 끝났습니다. 지금까지 만든 helm차트 구조는 [그림 5]와 같습니다.

그림5 차트 구조

 

다음 시간에는 만든 helm차트를 설치하여 쿠버네티스에 nginx 리소스를 배포해보겠습니다.

반응형