Helm은 Kubernetes 어플리케이션을 패키징하고 배포하기 위한 오픈소스 도구이다. Helm은 "차트"라고 불리는 패키지로 구성되며, 이러한 차트들은 Kubernetes 자원들을 설명하는데 사용된다. 간단히 말해, Helm은 Kubernetes 애플리케이션을 구성하고 배포하기 위한 패키지 매니저로 볼 수 있다.
Helm에는 세 가지 중요한 개념
Helm은 차트 라는 Kubernetes 패키지를 관리하기 위한 도구이다.
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
설치 확인
helm version
"repo" 관련 명령어
helm repo add <repository_name> <repository_url>
: 새로운 차트 리포지토리를 추가합니다.helm repo list
: 현재 구성된 차트 리포지토리 목록을 표시합니다.helm repo update
: 구성된 모든 차트 리포지토리를 업데이트합니다.helm repo remove <repository_name>
: 지정된 차트 리포지토리를 제거합니다"pull", "install", "uninstall"
helm pull <chart_name>
: 차트를 로컬로 다운로드합니다.helm install <release_name> <chart_name>
: 지정된 차트를 K8s 클러스터에 설치하여 배포합니다.helm uninstall <release_name>
: 특정 배포를 삭제하고 차트를 제거합니다.helm list
: 현재 배포된 차트의 목록을 표시합니다.chart 검색
helm search hub
helm search repo
저장소 등록
helm repo add 저장소_주소
패키지 설치
helm install <release명> <저장소명> 또는 <URL>
변수(옵션) 확인 및 변경
helm show values <저장소명> > 파일명
helm install -f 수정파일명 <저장소명> --generate-name
목록 확인
heml list / helm repo list
helm search
: 차트를 검색합니다helm pull
: 로컬 디렉터리로 차트를 다운로드하여 볼 수 있도록 합니다helm install
: 차트를 Kubernetes에 업로드합니다helm list
: 차트의 배포 목록을 표시합니다환경 변수 | 설명 |
---|---|
$HELM_CACHE_HOME | 캐시 파일을 저장하는 대체 위치를 설정합니다 |
$HELM_CONFIG_HOME | Helm 구성을 저장하는 대체 위치를 설정합니다 |
$HELM_DATA_HOME | Helm 데이터를 저장하는 대체 위치를 설정합니다 |
$HELM_DEBUG | Helm이 디버그 모드에서 실행 중인지 여부를 나타냅니다 |
$HELM_DRIVER | 백엔드 스토리지 드라이버를 설정합니다. 값은 configmap, secret, memory, sql 등이 있습니다 |
$HELM_DRIVER_SQL_CONNECTION_STRING | SQL 스토리지 드라이버에 대한 연결 문자열을 설정합니다 |
$HELM_MAX_HISTORY | helm 릴리스 히스토리의 최대 개수를 설정합니다 |
$HELM_NAMESPACE | Helm 작업에 사용할 네임스페이스를 설정합니다 |
$HELM_NO_PLUGINS | 플러그인을 비활성화합니다. 플러그인을 비활성화하려면 HELM_NO_PLUGINS=1로 설정합니다 |
$HELM_PLUGINS | 플러그인 디렉터리 경로를 설정합니다 |
$HELM_REGISTRY_CONFIG | 레지스트리 구성 파일 경로를 설정합니다 |
$HELM_REPOSITORY_CACHE | 리포지토리 캐시 디렉터리 경로를 설정합니다 |
$HELM_REPOSITORY_CONFIG | 리포지토리 파일 경로를 설정합니다 |
$KUBECONFIG | 대체 Kubernetes 구성 파일의 경로를 설정합니다 (기본값 "~/.kube/config") |
$HELM_KUBEAPISERVER | 인증을 위한 Kubernetes API 서버 엔드포인트를 설정합니다 |
$HELM_KUBECAFILE | Kubernetes 인증서 기관 파일을 설정합니다 |
$HELM_KUBEASGROUPS | 쉼표로 구분된 사용할 그룹을 설정하여 가장 위임을 사용합니다 |
$HELM_KUBEASUSER | 작업에 대한 위임으로 사용할 사용자 이름을 설정합니다 |
$HELM_KUBECONTEXT | kubeconfig 컨텍스트의 이름을 설정합니다 |
$HELM_KUBETOKEN | 인증을 위한 Bearer KubeToken을 설정합니다 |
$HELM_KUBEINSECURE_SKIP_TLS_VERIFY | Kubernetes API 서버의 인증서 유효성 검사를 건너뛸지 여부를 나타냅니다 (보안 문제가 있을 수 있습니다) |
$HELM_KUBETLS_SERVER_NAME | Kubernetes API 서버 인증서의 유효성을 검증하는 데 사용할 서버 이름을 설정합니다 |
$HELM_BURST_LIMIT | 서버에 많은 CRD가 있는 경우의 기본 버스트 제한을 설정합니다 (기본값 100, -1은 비활성화를 의미합니다) |
운영 체제 | 캐시 경로 | 구성 경로 | 데이터 경로 |
---|---|---|---|
Linux | $HOME/.cache/helm | $HOME/.config/helm | $HOME/.local/share/helm |
macOS | $HOME/Library/Caches/helm | $HOME/Library/Preferences/helm | $HOME/Library/helm |
Windows | %TEMP%\helm | %APPDATA%\helm | %APPDATA%\helm |
사용법: helm [command]
사용 가능한 명령어
completion
: 지정된 쉘에 대한 자동완성 스크립트 생성create
: 지정한 이름으로 새 차트 생성dependency
: 차트의 종속성 관리env
: Helm 클라이언트 환경 정보get
: 지정된 배포의 확장 정보 다운로드help
: 특정 명령어에 대한 도움말history
: 배포 히스토리 가져오기install
: 차트 설치lint
: 가능한 이슈를 검사하는 차트 검사list
: 배포 목록 표시package
: 차트 디렉터리를 차트 아카이브로 패키지화plugin
: Helm 플러그인 설치, 목록, 제거pull
: 리포지토리에서 차트 다운로드 (옵션으로 로컬 디렉터리에 압축 해제)push
: 차트를 원격으로 푸시registry
: 레지스트리 로그인 또는 로그아웃repo
: 차트 리포지토리 추가, 목록, 제거, 업데이트, 색인rollback
: 이전 버전으로 배포 롤백search
: 차트에서 키워드 검색show
: 차트 정보 표시status
: 지정된 배포 상태 표시template
: 로컬로 템플릿 렌더링test
: 배포 테스트 실행uninstall
: 배포 제거upgrade
: 배포 업그레이드verify
: 주어진 경로의 차트가 서명되었고 유효한지 확인version
: 클라이언트 버전 정보 출력플래그
--burst-limit int
: 클라이언트 사이드 기본 쓰로틀링 제한 (기본값 100)--debug
: 자세한 출력 활성화-h, --help
: 도움말--kube-apiserver string
: Kubernetes API 서버의 주소와 포트--kube-as-group stringArray
: 작업 위임을 위해 사용할 그룹, 여러 그룹을 지정하려면 해당 플래그를 반복해서 사용--kube-as-user string
: 작업 위임을 위해 사용할 사용자 이름--kube-ca-file string
: Kubernetes API 서버 연결을 위한 인증서 기관 파일--kube-context string
: 사용할 kubeconfig 컨텍스트 이름--kube-insecure-skip-tls-verify
: true인 경우 Kubernetes API 서버의 인증서 유효성 검사를 건너뜀 (HTTPS 연결이 무효화됨)--kube-tls-server-name string
: Kubernetes API 서버 인증서 유효성 검증에 사용할 서버 이름--kube-token string
: 인증에 사용할 Bearer KubeToken--kubeconfig string
: kubeconfig 파일 경로-n, --namespace string
: 이 요청의 네임스페이스 범위--registry-config string
: 레지스트리 구성 파일 경로--repository-cache string
: 캐시된 리포지토리 인덱스 파일 경로--repository-config string
: 리포지토리 이름 및 URL이 포함된 파일 경로