1. 설치
$ 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
# 심볼릭
$ ln -s /usr/local/bin/helm /usr/bin/helm
# 혹은 /etc/profile에 path 추가
$ echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile
$ source /etc/profile
명령어 자동 완성 추가하기
# 현재 사용중인 세션
$ source <(helm completion bash)
# 새로운 세션 연결시
$ helm completion bash > /etc/bash_completion.d/helm
설치를 완료했으니, 필요한 패키지를 설치하기 위한 저장소가 필요합니다.
Artifact Hub
Find, install and publish Cloud Native packages
artifacthub.io
페이지에서 설치가 필요한 패키지를 검색합시다.
저는 예시로 nginx 를 사용할거고, bitnami 저장소를 이용하겠습니다.
박스 모양에 커서를 갖다대면 repo URL이 나오는데 복사합시다.
해당 URL로 repo 추가를 합시다.
# Repo 추가
$ helm repo add bitnami https://charts.bitnami.com/bitnami
# Repo 패키지 리스트 업데이트
# yum 혹은 apt 같은 패키지 관리자의 update 기능이라고 생각하시면 편합니다.
$ helm repo update
저장소 추가 후에 검색해보면 잘 나옵니다.
설치 방법은 이전의 사이트에서 install 를 클릭하면 확인 할 수 있고, 하단의 See all을 누르면 배포 패키지의 버전 리스트를 확인 할 수 있습니다.
해당 페이지에서 안내하는 install 방법은 아래와 같습니다.
helm install은 helm install [NAME] [CHART] [flags] 순이며, 차트를 참조하거나 디렉토리를 직접적으로 참조 할 수도 있습니다.
$ helm install my-nginx bitnami/nginx --version 18.1.7
# ex 예시
# 차트 참조 : helm install $(my-nginx) nginx/nginx
# 패키지 차트 경로 : helm install $(my-nginx) ./nginx-1.2.3.tgz
# 압축을 푼 차트 디렉토리 경로 : helm install $(my-nginx) ./nginx
# 절대 URL : helm install $(my-nginx) https://example.com/charts/nginx-1.2.3.tgz
# 차트 참조 및 저장소 URL : helm install --repo https://example.com/charts/ mynginx nginx
해당 명령어로 생성 후에 조회해보면 정상적으로 생성되는 것을 확인 할 수 있습니다.
근데 우리는 values 값에 대한 수정이 필요하기 때문에 이걸로 설치 할 수 없습니다, 따라서 helm pull을 통해 패키지를 직접적으로 가져와야 합니다.
$ mkdir nginx
$ cd nginx
$ helm pull bitnami/nginx
$ tar -xvf nginx-*.tgz
$ cd nginx
압축을 푼 디렉토리로 이동하면 여러개의 yaml과 디렉토리가 존재하는 걸 볼 수 있습니다.
여기서 패키지를 설치할 때 차트의 기본 구조는 아래와 같습니다.
values.yaml을 통해 해당 인스턴스를 값을 정의하고, templates가 정의된 값을 통해 인스턴스를 구성합니다.
nginx-chart/
├── Chart.yaml
├── values.yaml
├── crds/
│ └── mycustomresource.yaml # 필요시 작성하는 커스텀 yaml
└── templates/
├── deployment.yaml
├── svc.yaml
└── ingress.yaml
└── ....
pull하여 가져온 chart에서 업로더가 제공한 README 등을 통해 양식에 맞게 values.yaml을 수정하고,
helm install을 통해 설치하면 되겠습니다.
$ helm install my-nginx . # 현재 디렉토리를 참조하여 my-nginx 패키지 설치
2. 여담
명령어
helm list : helm chart 조회
helm uninstall $(charts) [...] [flags] : charts 삭제
helm status $(charts) : charts 상태 조회
'Virtualization' 카테고리의 다른 글
[도커] SPT fika 도커로 구동하기 (0) | 2024.07.15 |
---|---|
[NKS] 프라이빗 레지스트리 (NCR) 사용하기 (2) | 2023.11.21 |
[쿠버네티스] kubectl 치트시트 (명령어 자동 완성) (0) | 2023.10.04 |
쿠버네티스 (0) | 2023.09.15 |
[NKS] NHN Cloud Kubernetes service 설치 및 기초 세팅 (0) | 2023.09.13 |