Helm Repository 관리

Helm Repository 관리

7️⃣ Helm Repository 관리


Helm에서는 차트를 관리하고 배포하기 위해 레포지토리를 사용합니다. 이 섹션에서는 Helm 레포지토리를 관리하는 방법과 다양한 레포지토리 구축 방법을 설명합니다.


1 Helm 공식 레포지토리 (artifactHub)

Helm은 기본적으로 여러 공식 차트 레포지토리를 지원합니다. 그 중 하나가 Artifact Hub입니다. Artifact Hub는 Helm 차트와 같은 오픈소스 소프트웨어를 공유하는 플랫폼입니다.

📌 Artifact Hub 예시

  • URL: https://artifacthub.io/
  • 여기서 사용자는 다양한 Helm 차트를 검색하고 설치할 수 있습니다. 예를 들어, MySQL 차트를 검색하여 설치할 수 있습니다.

📌 Helm 명령어로 공식 레포지토리 추가

helm repo add stable https://charts.helm.sh/stable
helm repo update

이 명령어는 stable이라는 이름의 공식 Helm 레포지토리를 추가하고 최신 차트 목록을 업데이트합니다.


2 Private Helm 레포지토리 구축

조직 내에서 자체 Helm 차트를 관리하고 배포할 필요가 있을 때는 Private Helm 레포지토리를 구축할 수 있습니다. 이를 통해 보안이 중요한 차트를 안전하게 배포할 수 있습니다.

📌 기본적인 Private 레포지토리 구축

  • GitHub, GitLab 등의 자체 Git 저장소를 사용하거나, 직접 서버를 구축하여 Helm 차트를 저장할 수 있습니다.

📌 Private Helm 레포지토리 추가

helm repo add my-private-repo https://my-repo-url.com
helm repo update

이 명령어는 지정된 URL에 있는 Private Helm 레포지토리를 추가하고 업데이트합니다.


3 helm repo index로 로컬 차트 저장소 생성

helm repo index 명령어는 로컬 디렉토리에 저장된 차트를 Helm 차트 레포지토리로 변환할 때 사용됩니다. 로컬 서버에서 Helm 차트를 쉽게 관리할 수 있습니다.

📌 로컬 차트 저장소 생성

  1. 차트가 포함된 디렉토리에서 helm repo index 명령어를 실행합니다.
helm repo index ./charts --url http://myserver.com/charts

이 명령어는 ./charts 디렉토리의 차트를 인덱싱하여 index.yaml 파일을 생성합니다. 이 파일은 차트의 메타데이터와 함께 레포지토리 URL을 제공합니다.

📌 인덱싱된 차트 파일 예시

apiVersion: v1
entries:
  my-app:
    - apiVersion: v2
      appVersion: 1.0.0
      name: my-app
      version: 1.0.0
      description: My custom app chart
      urls:
        - http://myserver.com/charts/my-app-1.0.0.tgz

4 S3, GCS, Harbor, Nexus 등을 활용한 Helm 레포지토리 구축

S3, GCS, Harbor, Nexus와 같은 저장소 서비스를 사용하여 Helm 차트 레포지토리를 구축할 수 있습니다. 이를 통해 클라우드 환경에서도 헬름 차트의 배포 및 관리를 쉽게 할 수 있습니다.

📌 S3를 활용한 Helm 레포지토리 구축

  1. AWS S3 버킷을 만들고, 차트 파일을 업로드합니다.

  2. S3 버킷을 Helm 레포지토리로 사용하기 위해 helm repo index 명령어를 사용합니다.

helm repo index ./charts --url https://mybucket.s3.amazonaws.com/charts
  1. S3 URL을 통해 차트에 접근할 수 있습니다.
helm repo add s3-repo https://mybucket.s3.amazonaws.com/charts

📌 Nexus 활용 예시

Nexus는 차트 관리뿐만 아니라 보안버전 관리가 중요한 경우에 유용합니다.

  • Nexus에서 Helm 레포지토리를 생성하고 차트를 업로드합니다.
  • Nexus UI에서 Helm 리포지토리를 관리할 수 있습니다.

5 차트 버전 관리 (helm package)

helm package 명령어는 Helm 차트를 **압축 파일(.tgz)**로 패키징하여 배포하거나 레포지토리에 업로드할 수 있게 합니다.

📌 Helm 차트 패키징

helm package ./my-chart

이 명령어는 my-chart/ 디렉토리의 차트를 .tgz 파일로 패키징합니다. 이 패키지 파일은 레포지토리나 다른 서버에 업로드할 수 있습니다.

📌 패키지된 차트 예시

my-chart-0.1.0.tgz

패키지된 차트는 버전 관리가 가능하며, 각 버전은 chart-name-version.tgz 형식으로 저장됩니다.

RSS Feed
마지막 수정일자