Helm
Helm 튜토리얼
벌레개발자
2024. 5. 8. 12:15
1. Helm이란?
헬름은 Kubernetes 어플리케이션 패키지를 관리해주는 도구이다.
원하는 리소스들을 세트로 패키징하여 한번에 설치가 가능하여 애플리케이션 의존성을 한 번에 설치할수 있다는 점이 편리하다.
이러한 패키지를 Helm에서는 Chart라고 부른다.
또한 Go언어의 sprig library를 지원해 go언어 방식의 변수 설정 또한 가능하다.
2. Helm 설치법
본 글에서는 ubuntu 기반의 설치법을 제공한다.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod +x get_helm.sh
./get_helm.sh
위 명령어들을 실행하면 Helm의 설치는 끝난다.
helm을 이용해서 패키지 설치를 해보자!
helm install happy-panda stable/mariadb
# 사용자가 정한 릴리스 이름 / 설치하려는 차트 이름
#happy-panda 라는 설치 릴리스 이름과 stable/mariadb 차트를 설치
helm list
#배포된 릴리스 확인
helm uninstall happy-panda
#삭제하기
helm status <릴리스 이름>
#릴리스 이름의 상태 추적이나, 구성 정보 재확인
helm show values stable/mariadb
#차트를 커스터마이징 가능하다! 차트에 어떤 옵션이 구성 가능한지 볼 수 있다
#그렇게 조회한 옵션을 아래처럼 config.yaml에 넣어서 커스터마이즈
echo '{mariadbUser: user0, mariadbDatabase: user0db}' > config.yaml
helm install -f config.yaml stable/mariadb --generate-name
#config.yaml을 이용한 커스터마이즈 설치
#-f : 오버라이드할 yaml 지정 옵션, 여러번 지정 가능하며 가장 오른쪽부터 우선
# --set : 명령줄상에서 오버라이드 지정, 명시된 사항은 전부 configmap에 저장
# --set 설정은 helm upgrade 할 시 reset-value를 이용하면 제거 가능
# helm get values <release-name>로 --set설정값 조회가능
3. 헬름 --set으로 수정하기
--set name=value
name: value
--set a=b.c=d
a: b
c: d
--set outer.inner=value
outer:
inner: value
--set name={a, b, c}
name:
- a
- b
- c
--set servers[0].port=80
servers:
- port: 80
--set servers[0].port=80,servers[0].host=example //인덱스를 이용해 여러값 지정
servers:
- port: 80
host: example
--set name=value1\,value2 // --set행에 특수문자를 사용 시
name: "value1,value2"
--set nodeSelector."kubernetes\.io/role"=master //toYaml기능을 이용한 파싱하는 차트에서 표기를 이스케이프
nodeSelector:
kubernetes.io/role: master
위의 명령어 입력시 아래와 같은 결과를 얻을 수 있다.