Overview
이번 글에서는 Helm Chart를 활용해 Base App Chart를 설계하고, 이를 기반으로 다양한 애플리케이션을 ArgoCD를 통해 자동 배포하는 방법을 정리한다.
단일한 Helm Chart 템플릿(Base Template)을 기반으로, 환경(dev1, dev2 등)과 서비스(admin, auth 등)에 따라 개별 values.yaml 파일만 다르게 구성해 애플리케이션을 배포할 수 있는 구조를 설계한다.
이를 통해 공통된 차트 구조를 유지하면서도 확장성과 유지보수성을 높일 수 있으며, ArgoCD ApplicationSet과의 연동을 통해 GitOps 방식으로 다중 환경 및 클러스터에 손쉽게 배포가 가능하다.
글에서는 아래 항목을 실습 중심으로 설명한다.
- Helm Base App Chart 구조 설계
- ArgoCD ApplicationSet 생성 및 Git 연동
- 각 App별 values.yaml 구성 방법
- Filebeat, PVC, 인증서 등 실전 활용 옵션 구성
- 온프레미스 및 클라우드 환경에 모두 적용 가능한 템플릿 활용 팁
최종적으로는 `Base Template + 환경별 values.yaml + ArgoCD ApplicationSet` 구조를 기반으로, 클러스터와 관계없이 모든 애플리케이션을 손쉽게 배포할 수 있는 효율적인 Helm 기반 배포 전략을 제시한다.
https://github.com/somaz94/helm-base-app-template
📅 관련 글
Helm 관련 글
2022.09.06 - [Container Orchestration/Kubernetes] - Helm 이란? (Kubernetes Package manager)
2023.05.16 - [Container Orchestration/Kubernetes] - Helm Chart 작성방법
2024.11.15 - [Container Orchestration/Kubernetes] - Helm Chart Template 문법
2024.12.20 - [Container Orchestration/Kubernetes] - Helm Chart 생성 및 패키징 (gh-pages)
Argo 관련 글
2023.05.16 - [IaC/CI CD Tool] - ArgoCD란?
2023.08.09 - [IaC/CI CD Tool] - ArgoCD 설치 AWS & GCP
2023.10.02 - [IaC/CI CD Tool] - ArgoCD ApplicationSet이란? (작성 방법)
2023.10.08 - [Container Orchestration/Kubernetes] - 2. Kustomize + ArgoCD ApplicationSet
2024.02.02 - [IaC/CI CD Tool] - Argo Workflow란?
2024.04.09 - [IaC/CI CD Tool] - ArgoCD SSO 구성 가이드(GCP Oauth)
2025.02.19 - [IaC/CI CD Tool] - ArgoCD SSO 구성 가이드(Gitlab)
Helm Base App Chart 생성(With ArgoCD)
사전 설정
- ArgoCD에 Kubernetes Cluster 등록
- ArgoCD에 GitLab 등록
- PV, PVC 사용 시 Storage 설정
- 인증서 사용 시 Certmanager 설치 및 Clusterissuer 설정
Base Template 구조 및 생성
Base Template 구조
helm-base-app-template [main|…32]
17:45 $ tree -d
.
├── appsets
├── charts
│ └── base
│ └── templates
└── values
└── somaz
├── admin
├── auth
├── backend
└── batch
Base Template 생성
아래의 코드를 참고하면 된다. 여러가지로 변형 가능하다.
ArgoCD ApplicationSet 생성
마찬가지로 아래의 코드를 참고하면 된다.
App Values Yaml 파일 생성
가장 중요한 파일이다. `base template values.yaml` 을 참고해서 차분히 작성하는 것이 중요하다.
마무리
- Base Template , ArgoCD Yaml, App Values Yaml 파일의 구조를 이해할 수 있다면, Base Template 하나만 사용해서 모든 App을 생성할 수 있다.
- 예시는 Onpremise Template 이지만 Cloud를 사용하더라도 동일하다. AWS, GCP, Azure 의 모든 리소스에 대한 Base Template을 생성하면 활용가능하다.
Reference
https://github.com/somaz94/helm-base-app-template
https://github.com/somaz94/helm-chart-template
'Container Orchestration > Kubernetes' 카테고리의 다른 글
Kubernetes에 static-file-server 생성하기 (0) | 2025.03.24 |
---|---|
Kubernetes IPVS vs iptables (0) | 2025.02.03 |
Helm Chart 생성 및 패키징 (gh-pages) (2) | 2024.12.20 |
Kubernetes Operator(CRD, CR) 생성(With kubebuilder) (0) | 2024.12.17 |
Kubernetes Operator 및 Custom Resource Definitions(CRDs) 이해하기 (0) | 2024.12.12 |