HELM Chart

Joooo·2023년 5월 15일
0
post-thumbnail

HELM

  • 쿠버네티스 패키지(helm chart) 매니저
  • ubuntu의 apt, Mac의 brew, node의 npm과 비슷한 역할
  • helm 명령어를 사용해 helm chart를 설치해서 쿠버네티스 리소스 배포

HELM Chart

  • 쿠버네티스 리소스를 정의해둔 yaml 파일의 묶음(패키지)
    • 여러 서비스의 yaml 파일을 묶어둘 수 있음
    • 공통된 내용이 들어간 yaml 파일을 작성하고 이름 등 서비스마다 다른 내용은 values.yaml에 작성
  • 패키지를 만들어두고 각각 다른 환경에 배포 가능
    ex) 제품 환경, 테스트 환경에 같은 패키지로 배포
  • go 템플릿 사용

HELM Chart 사용하기

참고

  1. 기본코드 생성
$ helm create {폴더이름}

폴더이름의 디렉토리를 만들고 다음 구조로 샘플 코드를 생성한다.

$ tree {폴더이름}  

{폴더이름}
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml

3 directories, 10 files
  • Chart.yaml: chart에 대한 기본적인 정보. 이름, 버전, 설명 등 기재 가능
  • values.yaml: 변수들을 정의한 파일. key: value 형식
    • 사용 방법

template (templates 디렉토리 안의 파일)

	apiVersion: v1
    kind: Service
    spec:
      type: {{ .Values.service.type }}
      ports:
        - port: {{ .Values.service.port }}
          targetPort: {{ .Values.args.port }}
          protocol: TCP

values.yaml

	service:
  		type: LoadBalancer
  		port: 9110

0개의 댓글