인프라/kubernetes

[Kubernetes] Helm (1) - Helm이란?

2juhyunju 2023. 7. 14. 18:53

Kubernetes는 컨테이너화된 애플리케이션을 배포하고 관리하기 위한 오케스트레이션 도구이다. 그러나 복잡한 구성과 설정 작업은 Kubernetes 배포를 어렵게 만들 수 있다. 이런 문제를 해결하기 위해 Helm은 Kubernetes 애플리케이션의 패키징, 배포, 업그레이드, 롤백 등을 단순화하는 도구이다. 이번 글에서는 Helm이 무엇이고 왜 사용하는지 알아보자.


Helm 이란?

Helm은 Kubernetes 패키지 매니저로 애플리케이션을 차트라는 단위로 패키징하고 쉽게 배포,관리,공유할 수 있게 해준다.

쉽게 말하면 리눅스에서 패키지 관리하는 YUM,APT랑 Node.js 환경에서 사용하는 npm, Python에서 사용하는 PIP 와 비슷한 개념이라고 생각하면 이해하기 쉽다.

Helm 기본 구조

Chart

Helm은 차트라는 패키지 포멧을 사용한다. 애플리케이션을 설명하고 필요한 리소스,템플릿,구성등을 포함한다.
애플리케이션을 설치,업그레이드,롤백하는데 된다.

Chart 생성

helm create hello

차트 구조

차트는 간단한 명령어로 생성 할 수 있고 차트의 구조는 위 사진과 같은 구조로 이루어진다.

Template

차트 내에서 리소스를 생성하기 위한 템플릿 파일이다. 템플릿은 구성 가능한 매개변수를 가지며 릴리즈 시에 이러한 매개변수를 실제 값으로 채워서 매니페스트 파일을 생성한다.

Values.yaml

차트의 매개변수를 정의하는 YAML 파일이다. 템플릿 내에서 사용되는 변수들을 설정하고, 애플리케이션의 구성을 지정한다.


정리

Helm을 사용하면 애플리케이션을 쉽게 배포하고 관리할 수 있으며, 구성 가능한 배포와 롤백, 업그레이드 기능을 지원하여 차트를 공유하고 재사용할 수 있는 장점이 있으며 일관된 방식으로 애플리케이션을 관리하는 데 도움이 된다.

이번 포스팅에서는 간단하게 Helm이 무엇이고 그 구조와 왜 Helm을 사용하는지에 대해서 정리하였고
다음 포스팅은 helm 설치 방법과 기본적인 사용방법을 포스팅 하겠다.