> 기타 외부 패키지 > helm

helm: 쿠버네티스 패키지 관리자

Helm은 쿠버네티스 애플리케이션을 정의, 설치, 업그레이드하는 데 사용되는 패키지 관리자입니다. '차트(Charts)'라는 패키징 형식을 사용하여 복잡한 애플리케이션을 쉽게 배포하고 관리할 수 있도록 돕습니다. 쿠버네티스 환경에서 애플리케이션의 배포 및 라이프사이클 관리를 간소화하는 데 필수적인 도구입니다.

개요

Helm은 쿠버네티스 클러스터에 애플리케이션을 배포하고 관리하는 데 필수적인 도구입니다. 차트 저장소에서 애플리케이션을 검색하고, 설치하며, 버전 관리를 통해 업그레이드 및 롤백을 수행할 수 있습니다. 이를 통해 복잡한 쿠버네티스 리소스들을 하나의 논리적인 단위로 묶어 관리할 수 있습니다.

주요 기능

Helm이 제공하는 핵심 기능들은 다음과 같습니다.

  • 쿠버네티스 애플리케이션 패키징 (차트)
  • 차트 저장소 관리 및 검색
  • 애플리케이션 배포, 업그레이드, 롤백
  • 릴리스 관리 및 히스토리 추적
  • 템플릿을 통한 유연한 설정

설치

Helm은 대부분의 리눅스 배포판에 기본적으로 포함되어 있지 않으므로, 수동으로 설치해야 합니다. 다음은 일반적인 설치 방법입니다.

스크립트를 이용한 설치 (권장)

curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

공식 설치 스크립트를 사용하여 Helm을 설치하는 가장 일반적이고 권장되는 방법입니다.

Homebrew를 이용한 설치 (macOS/Linux)

brew install helm

Homebrew 패키지 관리자를 사용하는 경우, 다음 명령어로 Helm을 설치할 수 있습니다.

apt를 이용한 설치 (Debian/Ubuntu)

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

Debian 또는 Ubuntu 기반 시스템에서는 apt 패키지 관리자를 통해 Helm을 설치할 수 있습니다.

주요 하위 명령

Helm 명령어는 다양한 하위 명령(subcommands)을 통해 쿠버네티스 애플리케이션 관리를 유연하게 수행할 수 있습니다. 다음은 자주 사용되는 주요 하위 명령들입니다.

릴리스 관리

차트 관리

정보 조회

생성된 명령어:

명령어를 조합해 보세요.

설명:

`helm` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

Helm의 주요 기능을 활용하여 쿠버네티스 애플리케이션을 관리하는 몇 가지 예시입니다.

차트 저장소 추가

helm repo add bitnami https://charts.bitnami.com/bitnami

Bitnami 차트 저장소를 추가하여 다양한 애플리케이션 차트를 사용할 수 있도록 합니다.

차트 저장소 업데이트

helm repo update

추가된 모든 차트 저장소의 정보를 최신 상태로 업데이트합니다.

차트 검색

helm search repo nginx

저장소에서 'nginx' 키워드를 포함하는 차트를 검색합니다.

차트 설치

helm install my-nginx bitnami/nginx

'my-nginx'라는 이름으로 Bitnami의 Nginx 차트를 설치합니다.

릴리스 목록 확인

helm list

현재 쿠버네티스 클러스터에 배포된 모든 Helm 릴리스 목록을 확인합니다.

릴리스 업그레이드

helm upgrade my-nginx bitnami/nginx --set service.type=NodePort

기존 'my-nginx' 릴리스를 업그레이드하면서 Nginx 서비스 타입을 NodePort로 변경합니다.

릴리스 제거

helm uninstall my-nginx

'my-nginx'라는 이름의 릴리스와 관련된 모든 쿠버네티스 리소스를 제거합니다.

팁 & 주의사항

Helm을 효과적으로 사용하고 잠재적인 문제를 방지하기 위한 팁과 주의할 점입니다.

Helm 차트 개발 및 검증

자신만의 차트를 개발하거나 기존 차트를 수정할 때 유용한 팁입니다.

  • `helm create <차트명>` 명령으로 기본적인 차트 구조를 생성하고, `values.yaml`과 템플릿 파일을 수정하여 애플리케이션을 정의할 수 있습니다.
  • `helm lint <차트경로>`를 사용하여 차트의 유효성을 검사하고 잠재적인 오류나 경고를 미리 발견하세요. 이는 배포 전 문제를 해결하는 데 큰 도움이 됩니다.

안전한 릴리스 관리

배포 및 업그레이드 시 발생할 수 있는 위험을 줄이는 방법입니다.

  • `helm install` 또는 `helm upgrade` 시 `--dry-run --debug` 옵션을 함께 사용하여 실제 배포 전에 렌더링된 YAML 매니페스트를 확인하세요. 이는 예상치 못한 변경 사항이나 오류를 사전에 파악하는 데 매우 유용합니다.
  • Helm 3부터는 릴리스 제거 시 `--purge` 옵션이 필요 없으며, 기본적으로 모든 리소스가 제거됩니다. 릴리스 기록을 유지하려면 `helm uninstall --keep-history <릴리스명>`을 사용하세요.

네임스페이스 지정

릴리스를 특정 쿠버네티스 네임스페이스에 배포하는 방법입니다.

  • 설명: `helm install` 또는 `helm upgrade` 시 `--namespace <네임스페이스명>` 옵션을 사용하여 특정 네임스페이스에 릴리스를 배포할 수 있습니다. 만약 해당 네임스페이스가 존재하지 않는다면, `--create-namespace` 옵션을 추가하여 자동으로 생성할 수 있습니다.

동일 카테고리 명령어