쿠버네티스 클러스터 상에 어플리케이션을 배포하기 위해 YAML 파일을 이용하여 어플리케이션 정보 기술, kubectl 명령을 이용하여 배포관리
Helm은 쿠버네티스 클러스터 상에 어플리케이션을 패키지 형태로 관리해주는 도구
chart : Helm 패키지 구성 정보를 담은 YAML 형식의 파일들, 별도 디렉토리에 관련된 파일들로 구성
helm create mychart
: mychart 생성
https://helm.sh/ko/docs/topics/charts/
apiVersion: 차트 API 버전 (필수)
name: 차트명 (필수)
version: SemVer 2 버전 (필수)
kubeVersion: 호환되는 쿠버네티스 버전의 SemVer 범위 (선택)
description: 이 프로젝트에 대한 간략한 설명 (선택)
type: 차트 타입 (선택)
keywords:
- 이 프로젝트에 대한 키워드 리스트 (선택)
home: 프로젝트 홈페이지의 URL (선택)
sources:
- 이 프로젝트의 소스코드 URL 리스트 (선택)
dependencies: # 차트 필요조건들의 리스트 (optional)
- name: 차트명 (nginx)
version: 차트의 버전 ("1.2.3")
repository: 저장소 URL ("https://example.com/charts") 또는 ("@repo-name")
condition: (선택) 차트들의 활성/비활성을 결정하는 boolean 값을 만드는 yaml 경로 (예시: subchart1.enabled)
tags: # (선택)
- 활성화 / 비활성을 함께하기 위해 차트들을 그룹화 할 수 있는 태그들
enabled: (선택) 차트가 로드될수 있는지 결정하는 boolean
import-values: # (선택)
- ImportValues 는 가져올 상위 키에 대한 소스 값의 맵핑을 보유한다. 각 항목은 문자열이거나 하위 / 상위 하위 목록 항목 쌍일 수 있다.
alias: (선택) 차트에 대한 별명으로 사용된다. 같은 차트를 여러번 추가해야할때 유용하다.
maintainers: # (선택)
- name: maintainer들의 이름 (각 maintainer마다 필수)
email: maintainer들의 email (각 maintainer마다 선택)
url: maintainer에 대한 URL (각 maintainer마다 선택)
icon: 아이콘으로 사용될 SVG나 PNG 이미지 URL (선택)
appVersion: 이 앱의 버전 (선택). SemVer인 필요는 없다.
deprecated: 차트의 deprecated 여부 (선택, boolean)
annotations:
example: 키로 매핑된 주석들의 리스트 (선택)
chart에 대한 설명
chart 환경변수
deployment.yaml , service.yaml , ingress,yaml , serviceaccount.yaml
template 디렉토리의 파일에서 사용하는 변수 참조가 실제 리소스 배포시 어떻게 대체되는지 미리 보기
실제 설치 과정에 대한 미리 보기
chart 파일을 압축파일 (.tgz) 형태로 만드는 과정
chart 패키지 파일 생성
Charts.yaml 파일에 정의한 <이름>-<버전>.tgz 형식의 압축파일 생성
chart 패키지 파일을 public/private/local repository에 저장
helm install <chart 패키지명>