[k8s] helm

업데이트:     Updated:

카테고리:

태그:

주요 개념 3가지

  • 차트: 차트는 helm의 패키지입니다. 이 패키지에는 쿠버네티스 클러스터 내에서 서비스를 구동하는 데 필요한 모든 리소스 정의가 포함되어 있습니다.
  • 저장소: 차트를 모아두고 공유하는 장소입니다.
  • 릴리스: 쿠버네티스 클러스터에서 구동되는 차트의 인스턴스입니다.

차트 찾기

  • helm search hub: 여러 저장소에 있는 헬름 차트들을 포괄하는 헬름 허브 저장소를 소스로 검색한다.
  • helm search repo: 운영자가 helm repo add 명령을 통해 로컬에 추가한 저장소를 소스로 검색한다.

helm search hub

$ helm search hub wordpress
URL                                               	CHART VERSION	APP VERSION	DESCRIPTION
https://hub.helm.sh/charts/bitnami/wordpress      	7.6.7        	5.2.4      	Web publishing platform for building blogs and ...
https://hub.helm.sh/charts/presslabs/wordpress-...	v0.6.3       	v0.6.3     	Presslabs WordPress Operator Helm Chart
https://hub.helm.sh/charts/presslabs/wordpress-...	v0.7.1       	v0.7.1     	A Helm chart for deploying a WordPress site on ...

helm search repo

$ helm repo add brigade https://brigadecore.github.io/charts
"brigade" has been added to your repositories
$ helm search repo brigade
NAME                        	CHART VERSION	APP VERSION	DESCRIPTION
brigade/brigade             	1.3.2        	v1.2.1     	Brigade provides event-driven scripting of Kube...
brigade/brigade-github-app  	0.4.1        	v0.2.1     	The Brigade GitHub App, an advanced gateway for...
brigade/brigade-github-oauth	0.2.0        	v0.20.0    	The legacy OAuth GitHub Gateway for Brigade
brigade/brigade-k8s-gateway 	0.1.0        	           	A Helm chart for Kubernetes
brigade/brigade-project     	1.0.0        	v1.0.0     	Create a Brigade project
brigade/kashti              	0.4.0        	v0.4.0     	A Helm chart for Kubernetes

Note: helm search는 단어 또는 문자열의 일부분만 입력해도 검색 된다.

차트 설치

새 차트를 설치하려면 helm install 명령어를 사용한다. 차트를 설치하면 새 release 오브젝트가 생성된다. 기본 사용법은 다음과 같다.

$ helm install [Release-Name] [Repository-Name/Chart-Name] [Options]
$ helm install happly-panda stable/mariadb
  • 릴리스 이름을 지정하지 않고 헬름이 생성해주는 이름을 그대로 사용하려면 --generate-name 옵션을 사용한다.
  • 릴리스의 상태를 추적하거나, 구성 정보를 재확인하려면 helm status 명령을 사용한다.
  • 차트를 커스터마이징하여 설치하기 위해 어떤 옵션이 구성 가능한지 보려면 helm show values 명령을 사용한다.
  • 이러한 설정들을 오버라이드하여, 설치시 파일과 함게 반영시킬 수 있다.
$ helm show values stable/mariadb
Fetched stable/mariadb-0.3.0.tgz to /Users/mattbutcher/Code/Go/src/helm.sh/helm/mariadb-0.3.0.tgz
## Bitnami MariaDB image version
## ref: https://hub.docker.com/r/bitnami/mariadb/tags/
##
## Default: none
imageTag: 10.1.14-r3

## Specify a imagePullPolicy
## Default to 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
# imagePullPolicy:

## Specify password for root user
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
##
# mariadbRootPassword:

## Create a database user
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
##
# mariadbUser:
# mariadbPassword:

## Create a database
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run
##
# mariadbDatabase:
# ...

$ echo '{mariadbUser: user0, mariadbDatabase: user0db}' > config.yaml
$ helm install -f config.yaml stable/mariadb --generate-name
  • 차트에 기본적으로 구성된 옵션을 덮어쓰려면 --values(또는 -f), --set 옵션을 사용한다.
    • --values (또는 -f): 덮어쓸 YAML 파일을 지정한다.
    • --set: 명령줄 상에서 덮어쓸 구성을 지정한다.

더 많은 설치 방법들

  • helm install 명령을 여러 소스로부터 사용하는 많은 방법이 있다.
    • 차트 저장소 (helm install mysql stable/mysql)
    • 로컬 차트 압축파일 (helm install foo foo-0.1.1.tar.gz)
    • 압축해제된 차트 디렉토리 (helm install foo path/to/foo)
    • 완전한 URL (helm install foo https://example.com/charts/foo-1.2.3.tar.gz)

릴리스 업그레이드 및 롤백

  • helm upgrade 명령은 현재 존재하는 릴리스를 사용자가 입력한 정보에 따라 업그레이드한다.
  • helm get values 명령을 사용하여 새로운 설정이 적용되었는지 확인해 볼 수 있다.
  • helm rollback 명령을 사용하여 이전 릴리스로 간단히 롤백할 수 있다.
    • 릴리스 버전은 설치, 업그레이드, 롤백 등이 실행될 때마다 리비전 번호가 1씩 증가한다.
    • 첫 번째 리비전 번호는 항상 1이다.
    • 특정 릴리스의 리비전 번호를 확인하기 위해서는 helm history [RELEASE]를 사용할 수 있다.

릴리스 삭제

  • helm uninstall [RELEASE] 명령을 통해 쿠버네티스 클러스터에서 릴리스를 제거할 수 있다.
  • helm list 명령어로 현재 배포된 모든 릴리스들을 확인할 수 있다.
  • 삭제 릴리스 기록을 보관하고 싶다면 helm uninstall --keep-history 옵션을 사용한다.
  • helm list --uninstalled를 사용하면 --keep-history 옵션으로 삭제된 릴리스들만 볼 수 있다.
  • helm list --all 옵션은 keep-history 옵션으로 삭제된 릴리스 기록을 포함하여 헬름이 가지고 있는 모든 릴리스 기록을 보여준다.

저장소 작업

  • helm repo list 명령을 사용하여 어떤 저장소들이 설정되어 있는지 확인할 수 있다.
  • helm repo add 명령으로 새 저장소들을 추가할 수 있다.
  • 저장소는 자주 바뀌므로 helm repo update 명령으로 저장소를 업데이트할 수 있다.
  • helm repo remove 명령으로 저장소를 삭제할 수 있다.

📌출처

Helm Docs


👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄

맨 위로 이동하기

k8s 카테고리 내 다른 글 보러가기

댓글남기기