Taeyoung Kim

Cloud & Platform

Helm과 Operator, ArgoCD 소개 및 구성

Helm과 Operator, ArgoCD 소개 및 구성 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


1. Helm 이해와 활용

  • Helm 정의: Kubernetes의 패키지 매니저로, apt·yum·pip처럼 애플리케이션을 손쉽게 설치·관리.
  • 구성 요소:
    • Chart: YAML 파일 모음 (values.yaml, templates/ 디렉터리로 구성).
    • values.yaml: 사용자 정의 값 설정.
    • templates/: Deployment·Service 등 Kubernetes 리소스 정의.
  • Helm vs Kustomize 비교:
    • 설치: Helm은 Artifact Hub 저장소 활용, GitHub 통해 설치. Kustomize는 kubectl과 통합.
    • 사용 방식: Helm은 템플릿 기반 파라미터 치환 후 k8s object 생성. Kustomize는 base YAML에 환경별 오버레이를 적용.

2. Kubernetes Operator

  • 정의: Custom Resource를 이용해 애플리케이션과 컴포넌트를 관리하는 Kubernetes 소프트웨어 확장 패턴.
  • 주요 개념:
    • CRD(Custom Resource Definition): 사용자 정의 리소스 사양 정의.
    • CR(Custom Resource): CRD를 따르는 실제 객체.
    • CC(Custom Controller): CR의 상태를 제어하는 루프.
  • 동작 원리: Custom Resource와 Custom Controller가 협력하여 Kubernetes 리소스를 모니터링 및 관리.
  • 활용 예: Prometheus Operator, Grafana 등 모니터링 도구의 자동 설치·운영.
  • 개발 도구: Operator SDK/Framework/KUD 사용해 손쉽게 Operator 개발 가능.
  • 구현 기술:
    • Go: 가장 강력하며 Kubernetes와 높은 호환성.
    • Ansible: 인프라 자동화 친화적.
    • Helm: 간단히 구현 가능하나 기능 제한.
  • 추가 개념:
    • Operator Lifecycle Manager(OLM): Operator 수명 주기 관리.
    • Operand: Operator가 관리하는 워크로드.
    • Managed Resource: Operator가 구성하는 Kubernetes 객체 또는 외부 서비스.
  • Operator Hub: 다양한 공식 Operator를 검색·활용 가능.
  • 장점: 다수 리소스를 한 번에 관리하고 설치를 단순화.

3. ArgoCD 이해와 활용

  • 개요: Kubernetes 전용 Continuous Deployment(CD) 도구. Git repository를 Release 파일 저장소로 사용.
  • 주요 구성:
    • Argo Events: 시스템 간 이벤트 전달.
    • Workflow: 이벤트 기반 작업 실행.
    • Rollouts: Blue/Green·Canary 배포 전략 지원.
    • Image Updater: Docker Hub 이미지 변경 감지 및 자동 배포.
  • 동작 흐름:
    1. Argo Events가 이벤트 전달.
    2. Workflow가 이벤트를 받아 특정 작업 실행.
    3. 배포 작업 시 ArgoCD가 실행되어 Rollouts로 Kubernetes에 리소스 배포.
  • 아키텍처: kube-apiserver와 통신하며 Kubernetes 내부에 설치·동작.
  • SSO 연동: KeyCloak 등을 활용하여 Grafana 등 외부 대시보드와 SSO 지원.
  • Repository 관리:
    1. App 소스 전용: 기능 코드 저장소, CI/CD 서버에서 다운로드.
    2. App 배포 전용: Release 파일 저장소, DevOps가 관리.
    3. Addon 설치 전용: Prometheus 등 운영 서비스 소스 관리.
  • CI/CD 파이프라인 고려사항:
    • 관리 담당: Jenkins 파이프라인 단계별 책임 분리 필요.
    • 운영 정책: 개발/운영 환경별 ArgoCD 인스턴스 구성 방식(통합 vs 분리).
    • 제품 선정: 데이터 보안, 유지보수 가능성, 온라인/오프라인 환경 고려.
  • 배포 전략: Blue/Green, Canary 등 상황에 맞는 전략 수립 필요.