BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
BESPIN Tech Blog
  • Tech
    • CSP
      • AWS
      • GCP
      • NCP
    • Cloud
      • Migration
      • LZ, Control Tower
      • Backup
      • Monitoring
      • Container
    • Infra
      • OS
      • Middleware
    • Data
      • RDB
      • Big Data Platform
    • Application
      • CI/CD
  • Trend
  • IT
  • Contact US
TECHContainerCloud

DevOps K8S(11) – 한 땀 한 땀 번거롭게 배포하지 말고 Heml Chart – Helm Chart 와 Helm template

by 현지 박 2024년 03월 25일
2024년 03월 25일
23

안녕하세요, 오늘은 SRE실 안은경 님이 작성해 주신 ‘Helm Chart 와 Helm template’에 대해 알아보겠습니다.

궁금한 부분이 있으시면 댓글을 달아주세요:)

Helm chart

  • 쿠버네티스의 패키지 관리자입니다. 
  • Helm은 오픈소스 소프트웨어로, 많은 chart(패키지와 유사)를 보유하고 있습니다.
  • 쿠버네티스에 최적화된 설정으로 사용할 수 있다는 장점이 있습니다.
Helm 저장소 추가
  • helm에는 많은 chart가 제공되고 있습니다. 
  • helm chart는 헬름 저장소에서 제공됩니다. 
  • helm chart는 Github에서 관리되고 있으며, 헬름 저장소에서 제공됩니다.
  • Stable 저장소 추가
$ helm repo add stable https://charts.helm.sh/stable 
  • Bitnami가 제공하는 helm 저장소 추가
$ helm repo add stable https://charts.helm.sh/stable 
  • 등록된 helm 저장소 확인
$ helm repo list 
  • helm 저장소 변경
$ helm repo update 
Helm 차트 검색
  • 저장소에서 모든 helm chart 검색
$ helm search repo 
  • 저장소에서 특정 helm chart 검색
$ helm search repo [chart명] 
  • helm hub에서 chart 검색
$ helm search hub [chart명] 
Helm 차트 설치
  • 파라미터 확인
$ helm show values [저장소명]/[chart명] 
  • README 표시
$ helm show readme [저장소명]/[chart명] 
  • 설치 명령어에 파라미터 지정하여 설치
$ helm install example-wordpress [저장소명]/[chart명] --version 10.9.2 \
--set wordpressUsername=example-user \ 
--set wordpressPassword=example-pass \ 
--set wordpressBlogName="example BLOG" \ 
--set persistence.size=5Gi 
  • value 파일 생성하여 설치
vim values.yaml
 wordpressUsername: sample-user

 wordpressPassword: sample-pass

 wordpressBlogName: "Sample Blog"

 persistence:

    size: 5Gi
  • 생성한 value 파일을 사용하도록 –values 옵션 지정하여 설치
$ helm install example-wordpress [저장소명]/[chart명] --version 10.02 \

    --values values.yaml
설치한 Helm chart 테스트
  • 설치한 chart 테스트 
$ helm test example-wordpress 

Helm Template

  • helm을 사용하여 Template과 설정 값으로 manifest를 생성합니다. 
  • 생성된 manifest를 출력 후, kubectl 명령어를 통해 apply 하는 방식입니다.
Helm Template으로 Manifest 파일 생성
  • Template 파일과 설정값 파일을 통해 manifest를 생성합니다. 
  • Chart를 신규로 생성할 경우, Deployment, Service, Ingress, ServiceAccount, HPA 리소스 Template이 자동으로 생성됩니다.
  • Template 예시
 apiVersion: v1

 Kind: Secret

 metadata:

     name: {{ template "wordpress.fullname" . }}

     labels: {{- include "wordpress.labels" . | nindent 4 }}

 type: Opaque

 data:

    {{- if .Values.wordpressPassword }}

    wordpress-password: {{ . Values.wordpressPassword | b64enc | quote }}

    {{- else }}

    wordpress-password: {{ randAlphaNum 10 | b64enc | quote }}

    {{- end }} 
  • values.yaml 파일 예시
 wordpressUsername: sample-user

 wordpressPassword: sample-pass

 ...
  • 생성된 manifest 파일 예시
 apiVersion: v1

 kind: Secret

 metadata: 

     name: example-wordpress

     labels:

        app.kubernetes.io/instance: example-wordpress

        app.kubernetes.io/managed-by: Helm

        app.kuernetes.io./name: wordpress

        helm.sh/chart: wordpress-10.9.2

 type: Opaque

 data: 

    wordpress-password: c2FtcGxlLXBhc3M=
  • values 파일로 template에서 manifest 생성
 $ helm template example-wordpress [저장소]/[chart명] --version 10.9.1 \ 
 --values values.yaml
Helm Chart 릴리스 확인 및 삭제
  • Helm chart 설치 후 릴리스 확인
 $ helm list
  • Helm chart 설치 후 릴리스 지정하여 삭제
 $ helm uninstall example-wordpress 

Custom Chart 

  • 신규 커스텀 차트 양식 생성
 $ helm create example-charts 
  • 신규 커스텀 차트 양식 생성
 $ cd example-charts

 $ tree

 .
├─ Chart.yaml
├─ charts
├─ templates
│   ├─  NOTES.txt   
│   ├─  _helpers.tpl
│   ├─  deployment.yaml
│   ├─  hpa.yaml
│   ├─  service.yaml
│   ├─  serviceaccount.yaml
│   └─  tests
│          └─  tests-connection.yaml
└─  values.yaml


  • 신규 커스텀 차트 양식 생성
    • templates/*.yaml : 설치하는 manifest 템플릿
    • templates/tests/*.yaml : 설치한 차트가 정상적으로 동작하는지 테스트하는 manifest 템플릿
    • values.yaml : 사용자가 나중에 덮어 쓸 수 있는 기본값 정의 리소스 제한, 사용 이미지, 포트 번호 등을 제공
    • templates/NOTES.txt : helm install 시 출력되는 메시지
    • requirements.yaml : 의존하는 차트와 해당 버전 기록         
    • templates/_helpers.tpl : 릴리스 이름으로 변수를 정의하는 등의 헬퍼 변수 정의        
    • Chart.yaml : 차트 메타데이터 
  • 자동 생성된 서비스 템플릿
    • template에 추가되는 값은 values.yaml로 지정됨
 apiVersion: v1

 kind: Service

 metadata:

     name: {{ include "example-charts.fullname: . }}

     labels:

       {{- include "example-charts.labels . | nindent 4 }}

 spec:

     type: {{ Values.service.type }}

     ports:

        - port : {{ .Values.service.port }}

          targetPort: http

          protocol: TCP

          name: http

     selector:

         {{- include "example-charts.selectorLabels" . | nident 4 }}

  • 생성한 helm chart 설치
 helm install example-helm example-charts 

감사합니다.

클라우드 문의하기

Written by 안 은경 / Eunkyung An

Cloud Engineer

관련

Helm Chart 설치Kubernetes HelmHelm 명령어Helm Chart 생성Kubernetes 패키지 관리자Helm 저장소Manifest 파일 생성Kubernetes 애플리케이션 배포Helm TemplateHelm Chart 관리

HOT Trend

Recent Posts

  • 딜로이트도, 맥킨지도, 베스핀글로벌도: AI 에이전트로 일 바꾸는 시대

    2025년 07월 04일 클라우드베스핀글로벌clouddata데이터AI인공지능HelpNow AIbespinglobalAI에이전트helpnow업무자동화딜로이트
  • ⚔️데이터센터에서 시작된 전쟁? 요즘 뜨는 AIDC 개념부터 트렌드까지!

    2025년 06월 27일 클라우드clouddata데이터AI데이터센터클라우드 데이터센터bespinglobalAIDCAI 인프라베스핀글로벌
  • 구글부터 엔비디아까지, 빅테크 기업들의 AI 전략 최신본📖

    2025년 06월 20일 cloud베스핀글로벌클라우드data데이터AI구글마이크로소프트엔비디아AI에이전트google I/ONVIDIA GTC 2025Microsoft build 2025
  • AI를 연결한다고? 업계가 주목하는 ‘MCP’ 알아보기🔍

    2025년 06월 13일 베스핀글로벌클라우드cloudAIMCP
  • [WhaTap] RDS Failover/Reboot 관제 2 – RDS Failover

    2025년 05월 30일 RDSRDS FailoverRebootFailoverbespin global

베스핀글로벌은 모든 기업의 AI 혁신을 실현하기 위해, 세상에서 가장 혁신적이고 자동화된 AI 서비스와 솔루션을 만들어갑니다.
상호 : 베스핀글로벌 주식회사 ㅣ 대표자명 : 김써니, 허양호 ㅣ 사업자등록증번호 : 638-87-00223 ㅣ 통신판매번호 : 2019-서울서초-0347 ㅣ 대표전화 : 1668-1280
사업장주소지 : 서울특별시 서초구 강남대로 327, 13,14,15,16층(서초동,대륭서초타워) ㅣ 이메일 : info@bespinglobal.com ㅣ 개인정보 처리방침 ㅣ 개인정보 처리방침 안내

© 2026 BESPIN GLOBAL, All Rights Reserved.

BESPINGLOBAL
패밀리 사이트
China MEA SEA US

BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT