Helm-Charts 작성 가볍게 알아보기

푸르둥개·2022년 12월 8일

Helm-Charts의 기본 구성 및 배포방식에 대해 간단히 알아 봅시다.

flow

  • 서비스별 공통 Templates 생성
  • 각 배포 환경 ( dev,qa.)에 맞는 values.yaml 설정
    • ex) image & tag 를 환경별로 다르게 설정 & 배포 가능 ( dev : 1.11 / qa : 1.10 /. prod : 1.09 )
  • values.yaml + Templates 는 동일 Github Repository 에 존재. (values.yaml + Templates 구조 )


Helm 생성 (예시)

  • helm 생성 및 templates 폴더 정리

create 명령 후 dodo-helm-tutorial이라는 이름의 폴더 생성

각각 파일들은 아래와 같은 역할

  • Chart.yaml: Chart의 정보를 정의하는 파일로 Chart의 이름, 버전 등을 정의.
  • charts: dependency chart 파일들이 해당 디렉토리 아래에 생성
  • template: k8s 리소스 템플릿이 보관되는 디렉토리.
    • NOTES.txt: Chart를 설치 후 출력되는 내용을 정의.
    • *.yaml: 클러스터에 띄울 리소스 템플릿 파일들 (서비스에 사용 되는 yaml 파일들 )
  • values.yaml: 템플릿에 사용될 변수들을 모아놓은 파일.

서비스용(공통) yaml 파일 등록

templates 폴더에 사용하지 않을 파일들을 삭제하고 서비스용 리소스 파일들을 복사 할 것.


환경별 설정 분리

  • Built-in Objects 설정
    • templates/*.yaml 파일에서는 Built-in Objects에 접근하여 원하는 값을 사용할 수 있음.
    • 예로 template 파일에 {{ .Values.name }} 과 같은 형태로 정의하면 values.yaml 파일(혹은 커맨드의 인자로 넘어온 온 값)에 있는 name이라는 key를 가진 value로 치환


참고

profile
DevOps업무중, 개발팀과 운영팀이 알아두면 좋은 정보를 공유합니다.

0개의 댓글