반응형
서론
Helm은 Kubernetes에서 애플리케이션을 관리하는 데 널리 사용되는 패키징 도구입니다.
이 포스트에서는 Helm 차트를 만들고, 차트 리포지토리를 관리하는 방법,
그리고 GitHub 페이지를 사용하여 차트 리포지토리를 호스팅하는 방법에 대해 알아보겠습니다.
Helm Chart 패키징
Helm Chart 생성
- Helm Chart는 Kubernetes 애플리케이션에 대한 모든 필요 파일을 포함하는 디렉토리입니다. 먼저 새로운 Helm 차트를 생성해봅시다:
- 이 명령어는 `${ChartName}`라는 이름의 새 차트를 생성합니다.
helm create ${ChartName}
차트 정보 수정
- 생성된 차트의 `Chart.yaml` 파일을 열고 애플리케이션에 대한 정보를 수정합니다. 예를 들어, 버전, 설명, 홈페이지 URL 등을 적절히 설정합니다.
차트 패키징
- 차트를 패키징하여 배포할 수 있는 형태로 만듭니다:
# Chart의 경로 설정하고 버전, 그리고 tgz 파일이 저장될 곳은 -d 옵션 뒤에 입력
helm package ${ChartDir} --version ${ChartVersion} -d ${PackageDir}
- 이 명령은 `${ChartDir}` 디렉토리를 ${PackageDir}에 `.tgz` 파일로 압축합니다.
Helm 리포지토리 인덱스 파일 생성
인덱스 파일 생성
Helm 리포지토리에 대한 인덱스 파일을 생성합니다. 이 파일은 차트의 메타데이터를 포함합니다:
# 만약 다른경로에 index 폴더를 생성하고 싶다면 . 말고 경로 설정
helm repo index ./${Package Dir} # 위에서 -d ${Package Dir} 옵션을 줬다면 같은 경로에 저장하는 것이 좋음
- 이 명령은 현재 디렉토리의 모든 차트에 대한 `index.yaml` 파일을 생성합니다.
GitHub 페이지로 Helm 리포지토리 호스팅
GitHub 리포지토리 생성
- GitHub에 새로운 리포지토리를 생성하고, 로컬에 클론합니다.
차트와 인덱스 파일 업로드
- 생성된 `.tgz` 차트 파일과 `index.yaml` 파일을 GitHub 리포지토리에 업로드하고 커밋합니다.
GitHub 페이지 활성화
- 리포지토리 설정에서 GitHub 페이지를 활성화합니다. 이를 통해 리포지토리가 웹 호스팅되며, Helm 리포지토리로 사용할 수 있습니다.
Helm 리포지토리 추가
생성된 GitHub 페이지 URL을 사용하여 Helm 리포지토리를 추가합니다:
# 기본적으로 github.io 페이지를 생성하면 아래의 구조로 URL이 생성됨 만약 ${PackageDir}을 설정했다면 URL 뒤에 추가
helm repo add myrepo https://${GitUser}.github.io/${RepoName}/${PackageDir}
- 이제 Helm을 통해 `myrepo`에서 차트를 검색하고 설치할 수 있습니다.
결론
Helm 차트를 만들고, 패키징하며, GitHub 페이지를 통해 공유하는 방법은 Helm을 사용하는 개발자들에게 유용합니다. 이를 통해 Kubernetes 애플리케이션의 배포 및 관리를 보다 쉽게 만들 수 있습니다.
이 포스트는 Helm 차트의 기본적인 패키징 방법과 GitHub 페이지를 통한 차트 호스팅 방법을 간략하게 설명합니다. 사용자의 요구에 따라 추가적인 내용이나 보다 상세한 설명을 추가할 수 있습니다.
반응형
'Engineering' 카테고리의 다른 글
AWS External ALB, Internal ALB, EKS Targetgroupbinding 구성 (0) | 2024.03.08 |
---|---|
AWS EKS ALB 하나로 여러 Ingress 구성 ( Ingress Group, TargetGroupBinding) (0) | 2024.02.06 |
eksctl로 eks 구축해보기 with 스팟 인스턴스 (0) | 2024.01.25 |
OpenTelemetry Beginner & Kubernetes (1) | 2024.01.24 |
OpenTelemetry Beginner & Kubernetes (0) | 2024.01.16 |