[k8s] helm
카테고리: k8s
태그: k8s
주요 개념 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명령으로 저장소를 삭제할 수 있다.
📌출처
👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄
댓글남기기