Argo CD 핵심 개념 — GitOps 배포를 이해하는 첫 단추

Argo CD 핵심 개념 — GitOps 배포를 이해하는 첫 단추

Argo CD를 처음 만지면 Application, Sync, Target state, Live state 같은 용어가 연달아 튀어나와서 헷갈리기 쉬워요. 이 글은 그 개념들을 하나씩 풀어서, 뒤에서 배울 싱크·롤백·프로젝트를 이해할 바탕을 만들어 줍니다.

출처: Argo CD 공식 문서 — Core Concepts

본문

Git, Docker, Kubernetes, 지속적 전달(CD), 그리고 GitOps 자체의 기본 개념은 알고 있다는 전제에서 시작할게요. 여기서는 Argo CD에 특화된 개념만 정리합니다.

가장 큰 두 상태를 먼저 구분해야 해요.

  • 타깃 상태(Target state): 애플리케이션이 있어야 하는 모습이에요. Git 저장소의 파일이 곧 이 상태를 나타냅니다.
  • 라이브 상태(Live state): 지금 클러스터에 실제로 떠 있는 모습이에요. 어떤 Pod가 배포돼 있는지 같은 것이죠.

이 두 상태가 같으면 **싱크 상태(Sync status)**가 정상이고, 다르면 아웃오브싱크(OutOfSync)라고 해요.

다음은 자주 보게 될 Argo CD 전용 용어 정리입니다.

  • Application: 한 매니페스트 묶음으로 정의된 쿠버네티스 리소스의 그룹이에요. Argo CD에서는 이를 커스텀 리소스 정의(CRD)로 다룹니다.
  • 애플리케이션 소스 타입(Application source type): 애플리케이션을 어떤 도구로 만들 것인지를 뜻해요. 예를 들어 Kustomize나 Helm 같은 것이죠.
  • 싱크(Sync): 라이브 상태를 타깃 상태로 움직이는 과정이에요. 쿠버네티스 클러스터에 변경을 적용하는 일을 말합니다.
  • 싱크 연산 상태(Sync operation status): 싱크가 성공했는지 여부를 나타내요.
  • 리프레시(Refresh): Git의 최신 코드와 라이브 상태를 비교해서 무엇이 다른지 찾아내는 작업이에요.
  • 헬스(Health): 애플리케이션이 제대로 돌고 있는지, 요청을 받을 수 있는 상태인지를 봐요.
  • 툴(Tool): 파일 디렉터리에서 매니페스트를 생성하는 도구예요. Kustomize를 예로 들 수 있죠. Configuration management tool이라고도 부릅니다.
  • 구성 관리 플러그인(Configuration management plugin): 이 툴을 커스텀하게 확장한 것을 말해요.

이 용어들 뒤에는 모두 'Git이 진실이고, 클러스터는 그 진실을 따라간다'는 GitOps 원칙이 깔려 있어요. 다음 개념들을 배울 때 이 두 상태와 싱크라는 단어가 계속 등장하니, 여기서 익숙해지고 넘어가면 좋습니다.

더 알아보기 (Learn more)