4-3. 직접 Helm 차트 만들어보기

황인권·2025년 2월 18일

Kubernetes

목록 보기
28/37

새로운 Helm 차트 생성하기

  • 아래 CLI 명령어를 통해 쉽게 기본적인 형태를 갖춘 Helm 차트를 생성할 수 있다.
helm create sparta

Chart.yaml 설정하기

  • Chart.yaml 에서는 Helm 차트의 이름과 용도, 버전과 같은 기본적인 정보를 설정하게 된다.
apiVersion: v2
name: sparta
description: A Sparta helm chart for kube study

type: application

version: 1.0.0

appVersion: "1.0.0"

templates 디렉토리 설정하기

  • template 디렉토리 안에는 오브젝트에 대한 정보가 담기게 된다.
  • 오브젝트 내용 중, 변수로 설정하고 싶은 부분은 {{ .Values.<변수명> }} 으로 입력하면된다.
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.appName }}-deployment
  namespace: sparta
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Values.appName }}
  template:
    metadata:
      labels:
        app: {{ .Values.appName }}
    spec:
      containers:
      - name: {{ .Values.appName }}
        image: {{ .Values.image }}
        ports:
          - containerPort: {{ .Values.appPort }}
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.appName }}-svc
  namespace: sparta
spec:
  selector:
    app: {{ .Values.appName }}
  ports:
    - protocol: TCP
      port: 80
      targetPort: {{ .Values.appPort }}

values.yaml 설정하기

  • 기본적인 정보가 담겨있는 values.yaml 파일과 또 다른 변수값이 설정되어 있는 yaml 파일 이렇게 두개를 만들자.
# values.yaml
appName: "nginx"
replicaCount: 3
image: "nginx:1.27.0"
appPort: 80
# third-week-values.yaml
appName: "third-week-app"
replicaCount: 2
image: "teamspartacontents/k8s_lecture1:third-week-exercise"
appPort: 3000

내가 만든 Helm 차트 설치하기

  • 각 values 파일을 이용해 두번 릴리즈를 해보자.
helm install sparta-nginx-app ./sparta --create-namespace --namespace sparta


profile
inkwon Hwang

0개의 댓글