Kubernetes/Udemy - CKAD with Tests

Helm Concepts

비번변경 2022. 2. 1. 19:20

이미지 버전, 디스크 용량, 애플리케이션 관리자 비밀번호 등 쿠버네티스 환경에서 애플리케이션은 환경에 따라 다른 값을 가질 수 있다.

 

Helm은 아래와 같은 방식을 통해 하나의 패키지로 여러 환경을 구성할 수 있도록 한다.

 

- 값을 변수로 취급할 수 있도록 파일을 템플릿으로 변환한다.

- 변수는 중괄호로 감싸서 나타내며, 값을 식별할 변수명을 적는다. 값은 values.yaml에 저장된다.

 

즉, 템플릿과 values.yaml이 결합한 것이 쿠버네티스가 클러스터에 애플리케이션을 배포하는 데 사용하는 정의 파일에 해당한다.

Helm Concepts

 

helm chart

template + values.yaml + Chart.yaml

Chart.yaml에는 차트의 이름, 버전, 설명과 같은 차트와 관련된 정보들이 저장되어 있다.

 

사용자는 helm chart를 직접 생성하거나, 저장소(https://artifacthub.io/)에 공개된 chart를 사용할 수 있다.

 

명령어

hub에서 chart 검색

helm search hub <NAME>

 

다른 저장소 추가

helm repo add <REPO_NAME> <URL>

 

추가한 저장소(클라이언트 저장소)에서 chart 검색

helm search repo <PACKAGE_NAME>

 

클라이언트 저장소 확인

helm repo list

 

chart 다운로드

--untar 옵션을 사용하면 차트를 로컬로 다운로드한 후 압축을 해제한다. 압축이 해제된 경로는 chart 이름과 같으며, 디렉터리 내 values.yaml을 편집하여 설치에 사용할 수 있다.

helm pull --untar <CHART_NAME>

 

Helm Release

chart가 설치된 버전을 뜻하며, 동일한 chart로 동일한 애플리케이션을 중복하여 설치할 수 있다. release이름은 chart 설치 시 지정할 수 있으며, 설치 명령을 실행할 때마다 release가 생성된다.

Helm Release
https://coffeewhale.com/kubernetes/gitops/helm/2020/05/13/helm-operator/

즉, release는 서로 독립적이다.

 

chart 설치

helm install <RELEASE_NAME> <CHART_NAME>

# 지정한 디렉터리 내 파일로 설치
helm install <RELEASE_NAME> <DIR>

 

설치 목록 확인

helm list

 

release 삭제

helm uninstall <RELEASE_NAME>

 

 


참고 문서

https://medium.com/tenable-techblog/how-tenable-uses-helm-to-template-a-microservice-stack-8c90ae445e48

https://coffeewhale.com/kubernetes/gitops/helm/2020/05/13/helm-operator/