Helm Chart Repository 구축 및 관리 가이드 (ChartMuseum)
1. Chart Museum 내부 쿠버네티스 클러스터에 Helm Chart Repository를 구축하기 위해 Chart Museum을 사용 Chart Museum은 Helm Chart를 저장하고 관리하기 위한 오픈소스 프로젝트 참고: Helm 3.8부터 OCI 레지스트리(예: Harbor, ECR, GHCR 등)를 통한 Chart 배포가 정식 지원되며, 업계에서는 OCI 레지스트리 방식으로 점차 전환되는 추세임(Harbor는 2.6 버전부터 Chart Museum 방식을 deprecated 처리함). 별도의 Chart Repository 서버 운영 부담을 줄이고 싶다면 이미 사용 중인 컨테이너 레지스트리에 OCI 방식으로 Chart를 올리는 것도 고려할 만함 1.1. Chart Museum 설치 Chart Museum은 Helm Chart로 설치 가능 Chart Museum Helm Chart를 사용하여 설치 # helm 저장소 추가 $ helm repo add chartmuseum https://chartmuseum.github.io/charts $ helm repo update # 설치 $ helm install -n chartmuseum chartmuseum chartmuseum/chartmuseum # 특정 버전 설치 $ helm install -n chartmuseum chartmuseum chartmuseum/chartmuseum --version 3.10.1 # 설치 확인 $ helm list -n chartmuseum NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chartmuseum chartmuseum 1 2023-07-17 11:16:50.183240294 +0900 KST deployed chartmuseum-3.10.1 0.16.0 1.1.1. Chart Museum 설정 변경 Chart Museum 설치 시 기본 설정으로 설치되며, 설정 변경을 위해 values.yaml 파일을 수정하여 설치 가능 Chart Museum Configuration 참고 # Chart Museum 설정 변경 $ helm upgrade -n chartmuseum chartmuseum chartmuseum/chartmuseum -f values.yaml 1.1.2. Chart Museum 삭제 # Chart Museum 삭제 $ helm uninstall -n chartmuseum chartmuseum 1.2. Chart Museum 사용 Chart Museum은 REST API를 제공하여 Chart를 업로드/다운로드 가능 1.2.1. Chart 업로드 Chart Museum에 Chart를 업로드하기 위해서는 Chart 파일이 필요 Chart 생성과 설정은 Chart 작성 가이드 참고 Chart 파일은 helm package 명령어를 사용하여 생성 가능 Chart Museum 업로드 관련 자세한 내용은 Chart Museum Upload 참고 # Chart 생성 # 기본 설정 파일을 포함한 Chart가 생성되며 해당 내용을 수정하여 Helm Chart를 생성 $ helm create <chart-name> # Chart 업로드를 위한 패키지 생성 $ helm package <chart-name> Creating <chart-name>-0.1.0.tgz # Chart Museum에 생성된 패키지 파일 업로드 $ curl --data-binary "@<chart-name>.tgz" http://<chartmuseum-service-ip>:<port>/api/charts # 업로드 확인 $ curl http://<chartmuseum-service-ip>:<port>/api/charts * 주의: API 사용 설정 Chart Museum은 기본적으로 API 사용이 비활성화 되어 있음 API 사용을 위해 Chart Museum Deployment 설정 파일을 수정해야 함 # Chart Museum Deployment 설정 파일 수정 $ kubectl edit deployment chartmuseum -n chartmuseum # DISABLE_API 설정 수정 template: spec: containers: env: - name: DISABLE_API value: "false" # 기본값은 "true" 1.2.2. 업로드된 Chart 사용법 Chart Museum에 업로드된 Chart를 사용하기 위해서는 Chart Museum을 Helm Repository로 추가해야 함 설치 관련 자세한 내용은 Helm Chart Install 참고 # Chart Museum을 Helm Repository로 추가 $ helm repo add <repo-name> http://<chartmuseum-service-ip>:<port> $ helm repo update # Chart Museum에 업로드된 Chart 목록 확인 $ helm search repo <repo-name> NAME CHART VERSION APP VERSION DESCRIPTION <repo-name>/<chart-name> 0.1.0 1.16.0 A Helm chart for Kubernetes Chart Museum에 업로드된 Chart를 사용하기 위해서는 helm install 명령어를 사용하여 설치 가능 # Chart Museum에 업로드된 Chart 설치 $ helm install <release-name> <repo-name>/<chart-name>