Helm은 Kubernetes에서 애플리케이션을 배포하기 위한 패키지 관리 도구입니다. Helm은 Kubernetes 애플리케이션을 구성하고 배포하는 데 사용되는 템플릿과 값의 조합을 "차트"라고 하는 패키지로 묶어 관리합니다. Helm 차트는 Kubernetes 클러스터에 배포할 수 있는 애플리케이션의 미리 정의된 구조와 설정을 포함하고 있습니다.

Helm 차트는 두 가지 주요 구성 요소로 구성됩니다:

  1. 템플릿(Templates): 템플릿은 Kubernetes 리소스의 미리 정의된 구조를 가지고 있으며, 실제 Kubernetes 오브젝트(예: Pod, Service, ConfigMap 등)를 생성하기 위한 매개 변수와 조건을 가집니다. 템플릿은 Helm에서 사용자 지정 가능한 부분을 나타내며, 이를 통해 다양한 환경에 맞게 애플리케이션을 구성할 수 있습니다.
  2. 값(Values): 값 파일은 템플릿에서 사용되는 매개 변수의 값을 포함하고 있습니다. 이 값을 조정하여 Helm 차트를 배포할 때 애플리케이션의 구성을 지정할 수 있습니다. 값 파일을 수정하면 Helm이 템플릿을 처리하고 Kubernetes 리소스를 생성할 때 해당 값이 적용됩니다.

종속 차트(dependency chart)는 Helm 차트에서 다른 Helm 차트를 사용하는 경우에 관련이 있습니다. Helm 차트는 종속성을 가질 수 있으며, 종속 차트는 해당 Helm 차트에 필요한 다른 Helm 차트를 설치하고 관리하는 데 사용됩니다. 종속 차트를 사용하면 애플리케이션을 구성하는 여러 구성 요소 또는 마이크로서비스를 더 쉽게 관리하고, 재사용성을 높일 수 있습니다.

예를 들어, 웹 애플리케이션을 배포하는 Helm 차트가 있을 때, 데이터베이스 서비스를 제공하는 별도의 Helm 차트가 필요한 경우 종속 차트를 사용하여 데이터베이스 서비스 차트를 참조하고 함께 설치할 수 있습니다. 이렇게 하면 애플리케이션과 데이터베이스 서비스를 한 번에 배포하고 관리할 수 있습니다.

실습

Helm | 차트

  1. Harbor 설치
  2. project 생성
  3. dependent chart 생성
  4. parent chart 생성
  5. dependent chart를 harbor에 push
  6. parent chart dependency 설정
  7. values.yaml 변경