애플리케이션

지원 버전: ArgoCD v2.9+ 마지막 업데이트: 2026년 2월 22일

목차

Application CRD 개요

Application은 ArgoCD의 핵심 Custom Resource입니다. Git 저장소의 매니페스트를 특정 Kubernetes 클러스터와 네임스페이스에 배포하는 방법을 정의합니다.

spinner

기본 구조

전체 스펙 해설

project

Application이 속한 AppProject를 지정합니다:

source

매니페스트 소스를 정의합니다:

destination

배포 대상을 정의합니다:

syncPolicy

동기화 정책을 정의합니다:

ignoreDifferences

특정 필드의 차이를 무시합니다:

info

추가 정보를 저장합니다:

소스 유형

1. 일반 디렉토리 (Plain YAML/JSON)

가장 기본적인 형태로, 디렉토리 내의 모든 YAML/JSON 파일을 적용합니다:

2. Helm 차트

저장소의 차트

Git 저장소의 차트

3. Kustomize

4. OCI 아티팩트

OCI 레지스트리에 저장된 Helm 차트나 매니페스트를 사용합니다:

ECR OCI 저장소 등록:

5. Jsonnet

다중 소스

ArgoCD v2.6+에서는 여러 소스를 결합할 수 있습니다:

다중 소스 활용 사례

1. Helm 차트 + 커스텀 리소스:

2. 여러 Helm 차트 결합:

대상 구성

클러스터 지정 방법

서버 URL 사용:

클러스터 이름 사용:

네임스페이스 설정

리비전 히스토리와 롤백

리비전 히스토리 제한

CLI를 통한 롤백

롤백 동작

spinner

헬스 체크

내장 헬스 체크

ArgoCD는 Kubernetes 리소스에 대한 내장 헬스 체크를 제공합니다:

리소스
헬스 기준

Deployment

availableReplicas >= replicas

StatefulSet

readyReplicas >= replicas

DaemonSet

numberReady >= desiredNumberScheduled

ReplicaSet

availableReplicas >= replicas

Pod

모든 컨테이너 Ready

Service

엔드포인트 존재

Ingress

로드밸런서 IP/호스트 할당

PersistentVolumeClaim

Bound 상태

Job

succeeded > 0 또는 active > 0

커스텀 헬스 체크 (Lua)

CRD 헬스 체크 예시

리소스 훅

리소스 훅은 동기화 과정의 특정 시점에 실행되는 작업입니다:

spinner

훅 유형

실행 시점
용도

PreSync

동기화 전

DB 마이그레이션, 백업

Sync

동기화 중

특정 순서 리소스

PostSync

동기화 후

테스트, 알림

SyncFail

동기화 실패 시

정리, 알림

Skip

동기화 제외

수동 관리 리소스

훅 어노테이션

PreSync 훅 예시: 데이터베이스 마이그레이션

PostSync 훅 예시: 스모크 테스트

SyncFail 훅 예시: Slack 알림

차이 무시 구성

기본 사용법

일반적인 무시 패턴

전역 무시 설정

모든 Application에 적용되는 전역 설정:

App of Apps 패턴

App of Apps 패턴은 여러 Application을 관리하는 상위 Application을 생성하는 패턴입니다:

spinner

구현 예시

저장소 구조:

Root Application:

Child Application:

Helm을 사용한 App of Apps

Helm 템플릿:

다음 단계

  1. 동기화 전략: 자동 동기화, 동기화 웨이브, 동기화 윈도우를 구성하세요.

  2. ApplicationSets: 대규모 배포를 위한 ApplicationSet 생성기를 학습하세요.

  3. 트래픽 관리: Argo Rollouts를 통한 블루/그린, 카나리 배포를 구현하세요.

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 Application 퀴즈를 풀어보세요.

마지막 업데이트