[Kubernetes] Helm
[Kubernetes] Helm
Install Helm
Script 방식
1
2
3
4
5
6
7
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 version
Windows
choco 이용
1
choco install kubernetes-helm
scoop 이용
1
scoop install helm
Apt 이용 (Debian/Ubuntu)
1
2
3
4
5
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
Helm Chart 명령어
helm search
- chart 찾기
helm search hub [keyword]
는 여러 저장소들에 있는 헬름 차트들을 포괄하는 helm hub 를 검색한다.helm search repo [keyword]
는 helm repo add [name] [chars_url] 를 사용하여 로컬 헬름 클라이언트에 추가된 저장소들을 검색한다.
helm install
- 패키지 설치
helm install [chart] --generate-name --debug --dry-run
--dry-run
: 실제 클러스터에 설치 하지 않고 chart를 시험 설치하는 옵션--debug
: 배포를 위한 manifest 파일 내용을 보여줌
helm install [release] [chart]
helm install -f values.yaml [chart] --generate-name
helm install --set servers[0].port=80 [release] [chart]
helm install [release] charts.tgz
helm install [release] path/to/charts
helm install [release] [charts_tgz_url]
helm status
- 릴리스의 상태 확인
helm status [release]
helm show values
- 차트에 옵션 설정 가능한 values 조회
helm show values [chart]
helm get values
- 해당 릴리스에 대한 옵션 설정 values를 조회
helm get values [release]
helm upgrade
- 릴리스 업그레이드
helm upgrade -f values.yaml [release] [chart]
helm rollback
- 릴리스 원복
helm rollback [release] [version]
helm history
- 릴리스 버전 이력 조회
helm history [release]
helm uninstall
- 릴리스 uninstall
helm uninstall [release]
--keep-history
- 삭제시 릴리스 기록을 보존
- 기본적으로는 기록도 삭제
helm list
- 릴리스 목록 조회
helm list --all
--all
- 실패하거나 삭제된 기록도 모두 표시
helm repo
- 저장소 작업하기
helm repo list
- 저장된 저장소 목록 조회
helm repo list
helm repo add
- 새 저장소 추가
helm repo add [name] [url]
helm repo update
- 저장소 업데이트
helm repo update [name1] [name2] ...
이전에 repository를 추가한 경우, 아래 명령을 실행하여 최신 버전의 패키지를 가져온다.
helm repo remove
- 저장소 삭제
helm repo remove [name1] [name2] ...
helm create
- 내 차트 만들기
helm create [name]
- Directory에 차트가 생김
helm package
- 배포용 차트로 패키징
helm package [chart_path]
Chart
- Chart.yaml
- 차트에 대한 정보를 가진 YAML 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
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: 키로 매핑된 주석들의 리스트 (선택).
- 차트에 대한 정보를 가진 YAML 파일
This post is licensed under CC BY 4.0 by the author.