02. Container

Helm과 Helm 차트의 관계

카이저일공 2024. 1. 20. 21:28
Helm과 Helm 차트의 관계

Helm과 Helm 차트의 관계

가. Helm

Helm은 Kubernetes 애플리케이션의 패키지 관리자로, 애플리케이션을 배포, 관리, 업그레이드, 롤백할 수 있습니다.

나. Helm 차트

Helm 차트는 Helm을 사용하여 배포할 Kubernetes 애플리케이션을 정의하는 파일입니다. 이는 다음과 같은 구성 요소를 포함합니다:

  • 템플릿: 컨테이너, 서비스, 네임스페이스 등 Kubernetes 리소스를 정의하는 템플릿입니다.
  • 값: 템플릿에서 사용할 값을 정의하는 파일입니다.
  • 메타데이터: 차트에 대한 정보를 정의하는 파일입니다.

다. Helm과 Helm 차트의 관계

Helm은 Helm 차트를 사용하여 Kubernetes 애플리케이션을 배포, 관리, 업그레이드, 롤백합니다. Helm 차트는 Kubernetes 리소스를 정의하는 템플릿을 포함하며, Helm은 이러한 템플릿을 처리하여 Kubernetes 클러스터에 리소스를 생성합니다.

Helm 차트는 Kubernetes 애플리케이션을 설치하고 구성하기 위한 모든 필수 정보를 담은 파일의 패키지로, 관리와 배포를 단순화합니다.

이미지

[출처 : https://www.devkuma.com/]

라. 구성요소

Helm 차트는 Kubernetes 애플리케이션의 배포와 관리를 단순화하기 위한 여러 구성 요소로 이루어져 있습니다. 이러한 구성 요소들은 애플리케이션의 리소스와 설정을 정의하며, 배포의 일관성과 재사용성을 제고합니다.

  • Chart.yaml: 차트의 메타데이터를 정의합니다. 차트의 이름, 버전, 설명이 포함됩니다.
  • charts/: 종속성으로 사용되는 다른 차트들을 포함할 수 있는 디렉토리입니다.
  • templates/: 실제 Kubernetes 리소스 정의를 포함하는 템플릿 파일들이 있는 디렉토리입니다. 여기에는 deployment.yaml, service.yaml 등의 파일이 포함될 수 있습니다.
  • NOTES.txt: 차트 설치 후에 사용자에게 안내 메시지를 제공하는 텍스트 파일입니다.
  • _helpers.tpl: 차트 내에서 재사용될 수 있는 템플릿 함수를 정의합니다.
  • values.yaml: 차트의 기본 구성값을 정의하는 파일로, 사용자가 커스터마이징할 수 있습니다.
  • tests/: 차트의 테스트를 정의하는 테스트 파일들이 포함된 디렉토리입니다. test-connection.yaml 같은 테스트 스크립트를 포함할 수 있습니다.
  • hpa.yaml: Horizontal Pod Autoscaler를 정의하여, 애플리케이션의 스케일링을 자동화합니다.
  • ingress.yaml: 외부에서 클러스터 내의 서비스에 접근할 수 있도록 하는 Ingress 리소스를 정의합니다.
  • serviceaccount.yaml: Kubernetes 서비스 어카운트를 정의하는 파일입니다.