Argo CD 핵심 개념 — GitOps 배포를 이해하는 첫 단추
Argo CD 핵심 개념 — GitOps 배포를 이해하는 첫 단추
Argo CD를 처음 만지면 Application, Sync, Target state, Live state 같은 용어가 연달아 튀어나와서 헷갈리기 쉬워요. 이 글은 그 개념들을 하나씩 풀어서, 뒤에서 배울 싱크·롤백·프로젝트를 이해할 바탕을 만들어 줍니다.
본문
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 원칙이 깔려 있어요. 다음 개념들을 배울 때 이 두 상태와 싱크라는 단어가 계속 등장하니, 여기서 익숙해지고 넘어가면 좋습니다.