본문 바로가기
Cloud

Kustomize, Helm Chart 시스템 구축

by VENUSIM 2024. 2. 9.

Helm은 템플릿 엔진이고 Kustomize는 오버레이 메커니즘을 따릅니다.

  • Helm Chart에서 템플릿된 YAML 파일을 불러옵니다.
  • Kustomize 가 환경별(Dev,Stg,Live) 로 YAML 파일을 수정(Patch/Overlay) 합니다.
  • 완성된 Yaml 이 쿠버네티스에 배포됩니다.

 

ARGOCD_MANIFEST 프로젝트

  • ArgoCd에서 사용될 Gitops Repository
  • Name: Gitlab에 생성된 각 프로젝트 이름으로 생성됨
 

Kustomize: 배포 리소스 모듈화

  • base:
    • kustomization.yaml: helm chart 연동 규격에 대해 정의
    • values.yaml: helm chart template 에서 사용할 변수값 정의
  • dev, stg, prod
    • kustomization.yaml: 개발, 스테이징, 운영환경에서 각각 적용할 kustomization 값 분리
    • 배포 환경에 따라 분리하여 사용

Kustomization.yml 설명

  • repo: Helm Chart가 올라가 있는 웹서버
    • [name: fastapi] : Helm에서 처리할 api 이름, Helm 에서 index.yaml 에서 연동
    • repo: Helm 이 업로드 된 storage path
    • releaseName: Helm Chart에서 사용될 프로젝트명
    • valuesFile: values.yaml을 변수가 정의된 파일로 사용
helmCharts:
- name: fastapi
  repo: example.storage.com/helm
  version: 0.1.0
  releaseName: test-app
  namespace: default
  valuesFile: values.yaml

HELM_CHART 프로젝트 구성

  • ArgoCd Gitops Repository의 Kustomization 에서 사용될 Helm Chart 프로젝트
  • fastapi-0.1.0.tgz: Object Storage 에 올라갈 Helm Chart 파일
  • index.yaml: Object Storage 에 올라갈 API 정의 파일

apiVersion: v1
entries:
  fastapi:
  - apiVersion: v2
    appVersion: "1.0"
    created: "2023-11-21T16:39:53.6250541+09:00"
    description: A Helm chart for deploying project
    digest: b212cc1ff670a1e2b2d50a03b7703afc21031655564e2090e1b74066336ccc7d
    name: fastapi
    type: application
    urls:
    - https://container-registry/bucket-name/chart/fastapi-0.1.0.tgz
    version: 0.1.0
generated: "2023-11-21T16:39:53.6244422+09:00"

 

프로젝트 구성

  • template: 쿠버네티스에서 사용할 파일에 대해 정의한다(deployment, service, ingress, sa, storageClass 등)
    • *.yaml
  • Chart.yaml: Helm Chart 의 구성
  • values.yaml: template 에서 사용될 변수 정의


헬름차트 Stroage에 업로드

  • fastapi-0.1.0.tgz 및 index.yaml 파일을 업로드

 

https://dev-junhee.tistory.com/85

 

Kustomize, Helm Chart 시스템 개선

이 글에 대한 개선 버전 입니다.https://dev-junhee.tistory.com/79 Kustomize, Helm Chart 시스템 구축Helm은 템플릿 엔진이고 Kustomize는 오버레이 메커니즘을 따릅니다.Helm Chart에서 템플릿된 YAML 파일을 불러옵

dev-junhee.tistory.com

 

'Cloud' 카테고리의 다른 글

[Tempo] Grafana Tempo 도입 (1)  (0) 2024.11.18
[Kafka] CDC 도입기 (1)  (0) 2024.11.18
[ArgoCD] K8S 환경에 ArgoCD 뿌리기!  (1) 2024.02.09
[ArgoCD] Teams 연동기  (0) 2024.02.09
[AWS] Bastion을 이용한 Infra 구조 설계하기  (0) 2023.12.12

댓글