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: Storage 에 올라갈 API 정의 파일
- index.yaml
apiVersion: v1
entries:
fastapi:
- apiVersion: v2
appVersion: "1.0"
created: "2024-02-05T16:39:53.6250541+09:00"
description: A Helm chart for deploying project
digest: b212cc1ff670a1e2b2d50a03b7703afc21031655564e2090e1b74066336ccc7d
name: fastapi
type: application
urls:
- https://example.storage.com/helm/fastapi-0.1.0.tgz
version: 0.1.0
generated: "2024-02-05T16: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 파일을 업로드
'Cloud > K8S' 카테고리의 다른 글
[ArgoCD] K8S 환경에 ArgoCD 뿌리기! (1) | 2024.02.09 |
---|
댓글