ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Helm Chart 개념 정리
    쿠버네티스/helm 2024. 12. 31. 16:16

    까먹지 않기 위해 정리하는 글 입니다..!

     

    헬름이란? 

    쿠버네티스에 패키지를 손수비게 배포할 수 있도록 패키지를 관리하는 쿠버네티스 전용 패키지 매니저

    패키지 : 실행 파일뿐만 아니라 실행 환경에 필요한 의존성 파일과 환경 정보들의 묶음

    패키지 매니저 : 외부에 있는 저장소에서 패키지 정보를 받아와 패키지를 안정적으로 관리하는 도구 (저장소 아님)

     

    좀 더 이해하기 쉽게 다른 예시를 아래와 같이 정리해보았습니다.

    플랫폼 패키지 매니저 저장소 사용 목적
    리눅스 yum, apt 배포판 저장소 소프트웨어 의존성 관리
    파이썬 pip  pypi.org 파이썬 모듈 의존성 관리
    자바  maven  maven repository 자바 라이브러리 의존성 관리
    쿠버네티스 helm artifacthub.io 쿠버네티스 패키지 관리

    패키지 매니저의 역할

    • 패키지 관리
    • 패키지 의존성 관리
    • 패키지 보안 관리

    왜 쓸까?

    문제상황

    다수의 오브젝트를 배포하는 yaml 파일은 '---' 인 파일 구분자로 묶어 여러 오브젝트를 단일 야믈로 배포할 수 있습니다. 
    하지만 이런 경우 변경 사항을 추적할 때 모든 내용이 한 야믈 파일에 담겨 있기 때문에 혼선을 줄 수 있습니다. 

    이를 해결하려면 목적에 맞게 디렉터리를 만들고 야믈 파일을 분리해 관리하면서 배포 시에는 디렉터리를 kubectl apply -f의 인자로 넘겨
    줘야 합니다. 

    하지만..! 이런 방식을 사용한다면 요구 조건에 변경되는 야믈 파일을 매번 개별 디렉터리에 작성해야 하고 디렉터리가 늘어날수록 관리 포인트도 늘어나게 됩니다.

     

    헬름을 사용한 해결

    헬름을 사용하면 요구 조건별로 리소스를 편집하거나 변수를 넘겨서 처리하는 패키지를 만들 수 있습니다. 
    다양한 요구 조건을 처리할 수 있는 패키지를 차트(Chart)라고 하는데, 이름 헬름 저장소에 공개해 여러 사용자와 공유합니다. 

     

     

    헬름의 전반적인 흐름

    누군가 책에서 따온걸 내가 다시 따온..

    아티팩트허브 영역은 저장소 영역이라고 보면 될 것 같습니다..!

    helm chart의 저장소는 여러가지가 있는데 저희 회사의 경우 Harbor을 주로 쓰는 편입니다. 

     

    생산자 영역

    작업자가 helm 명령으로 작업 공간을 생성하면 templates 디렉터리로 애플리케이션 배포에 필요한 여러 야믈 파일과 구성 파일을 작성할 수 있습니다. 

    values.yaml : 조건별 분기, 값 전달, 기본값 처리 등

    Charts.yaml : 차트의 이름, 목적, 배포되는 애플리케이션 버전 정보 등

     

    저장소 영역

    사용자가 찾고자 하는 애플리케이션 패키지를 검색하여 저장된 주소를 확인

     

    사용자 영역

    애플리케이션의 차트 저장소 주소를 저장소에서 얻으면 헬름을 통해서 주소를 등록 및 설치(릴리스)

    '쿠버네티스 > helm' 카테고리의 다른 글

    Docker Hub를 Helm Charts 저장소로  (2) 2025.01.06
Designed by Tistory.