인프라와 배포를 사람이 손으로 관리하면 실수가 쌓이고, 실제 서버 상태가 문서와 달라지는 ‘드리프트’가 생깁니다. GitOps는 Git 저장소를 유일한 진실의 원천(Single Source of Truth)으로 삼아, 원하는 시스템 상태를 코드로 선언하고 그것을 자동으로 클러스터에 반영·유지하는 운영 방식입니다. ArgoCD·Flux 같은 도구가 이를 구현하며, 쿠버네티스 배포의 사실상 표준으로 자리잡았습니다. 이 글에서 핵심 원리와 실무 관점을 정리합니다.
GitOps란 무엇인가
GitOps는 “원하는 상태를 Git에 선언하면, 에이전트가 실제 환경을 그 상태로 자동 수렴시킨다”는 아이디어입니다. 배포를 사람이 명령으로 밀어넣는 대신, Git에 커밋된 선언을 기준으로 시스템이 스스로 맞춰갑니다. 핵심 원칙은 선언적(Declarative), 버전 관리(Git), 자동 적용(Automated), 지속적 조정(Continuously Reconciled) 네 가지입니다.
왜 GitOps인가
- 감사와 롤백: 모든 변경이 Git 커밋으로 남아 누가·언제·무엇을 바꿨는지 명확하고, 이전 커밋으로 되돌리면 롤백이 됩니다.
- 드리프트 감지: 실제 상태가 선언과 달라지면 자동으로 감지하고 원래대로 교정합니다.
- 협업 워크플로: 배포도 코드 리뷰(PR)를 거치므로 안전하고 투명합니다.
- 보안: 클러스터 안의 에이전트가 Git을 당겨오는(pull) 방식이라, 외부에 클러스터 접근 권한을 열지 않아도 됩니다.
GitOps는 어떻게 동작하나
핵심은 ‘조정 루프(Reconciliation Loop)’입니다. 에이전트가 원하는 상태(Git)와 실제 상태(클러스터)를 끊임없이 비교해 차이를 없앱니다.
| 단계 | 내용 |
|---|---|
| 1. 선언 | 원하는 상태(매니페스트·Helm 등)를 Git에 작성 |
| 2. 커밋·PR | 변경을 커밋하고 리뷰 후 병합 |
| 3. 감지 | 클러스터 내 에이전트(ArgoCD·Flux)가 Git 변경을 감지 |
| 4. 동기화 | 실제 클러스터를 선언된 상태로 자동 적용 |
| 5. 조정 | 드리프트가 생기면 지속적으로 다시 맞춤 |
핵심 개념
- 단일 진실의 원천(SSOT): Git이 시스템 상태의 기준입니다. 클러스터가 아니라 Git이 ‘정답’이죠.
- 조정 루프: 원하는 상태와 실제 상태를 반복 비교해 수렴시키는 핵심 메커니즘입니다.
- 드리프트 감지: 누군가 클러스터를 직접 손대도 자동으로 되돌립니다.
- Pull vs Push: GitOps는 클러스터가 Git을 당겨오는 pull 방식을 선호해, 외부에서 클러스터를 밀어넣는 push 방식보다 안전합니다.
ArgoCD vs Flux
| 항목 | ArgoCD | Flux |
|---|---|---|
| 특징 | 강력한 웹 UI·대시보드 | 가볍고 CLI·툴킷 중심 |
| 구조 | 애플리케이션 중심 | GitOps Toolkit 컴포넌트 조합 |
| 진입 장벽 | 시각적이라 직관적 | 단순·유연하지만 손이 감 |
| 추천 상황 | 대시보드로 배포 현황을 보고 싶을 때 | 가볍게 자동화 파이프라인에 녹이고 싶을 때 |
둘 다 CNCF 프로젝트로 성숙도가 높습니다. UI가 필요하면 ArgoCD, 경량·유연함을 원하면 Flux가 무난합니다.
GitOps vs 전통 CI/CD
GitOps는 CI/CD를 대체하는 게 아니라 CD(배포) 부분을 선언적으로 바꾸는 방식입니다. CI/CD에서 CI(빌드·테스트)는 그대로 두고, 결과물을 클러스터에 반영하는 배포 단계를 Git 기반 pull로 전환하는 것이죠. 기존 CI가 클러스터에 직접 배포 명령을 밀어넣었다면, GitOps는 CI가 Git을 갱신하고 클러스터 에이전트가 그것을 당겨와 적용합니다.
인프라·취업 관점
- 쿠버네티스 기반: GitOps는 대부분 쿠버네티스 위에서 동작합니다. 클러스터·매니페스트 이해가 전제입니다.
- Terraform과의 관계: Terraform(IaC)은 인프라 프로비저닝, GitOps는 그 위에 올라가는 애플리케이션 배포로 역할이 나뉘며 함께 씁니다.
- 관측성 연계: 배포 후 상태 확인은 옵저버빌리티와 이어지고, 시크릿 관리(Sealed Secrets·Vault)도 함께 설계합니다.
- 채용 관점: ‘ArgoCD·Flux 운영 경험’, ‘GitOps 파이프라인 구축’, ‘드리프트 관리’는 DevOps·플랫폼 엔지니어 공고의 단골 우대사항입니다.
자주 묻는 질문(FAQ)
GitOps는 쿠버네티스에서만 쓸 수 있나요?
가장 성숙한 사례가 쿠버네티스일 뿐, 원리(선언적 상태 + 조정 루프)는 다른 환경에도 적용됩니다. 다만 ArgoCD·Flux 같은 대표 도구는 쿠버네티스를 중심으로 발전했습니다.
GitOps와 CI/CD 중 뭘 먼저 배워야 하나요?
CI/CD의 기본 흐름을 먼저 이해한 뒤 GitOps로 넘어가면 자연스럽습니다. GitOps는 CI/CD의 배포 단계를 개선하는 개념이기 때문입니다.
ArgoCD와 Flux 중 무엇을 고를까요?
배포 현황을 시각적으로 관리하고 싶으면 ArgoCD, 가볍고 유연하게 자동화에 녹이고 싶으면 Flux가 좋습니다. 둘 다 검증된 CNCF 프로젝트라 어느 쪽도 무난합니다.
신입이 GitOps를 어디까지 알아야 하나요?
SSOT·조정 루프·드리프트 개념과 ArgoCD/Flux의 역할, 쿠버네티스 매니페스트와의 관계를 이해하면 DevOps·플랫폼 직무에서 확실한 강점이 됩니다.
더 읽어보기
- CI/CD 파이프라인 완벽 가이드: 지속적 통합과 배포의 모든 것
- 쿠버네티스로 AI 워크로드 운영하기: GPU 스케줄링과 오토스케일링
- Terraform과 IaC 완벽 가이드: 코드로 인프라를 관리하는 법
- 옵저버빌리티 완벽 가이드: 로그·메트릭·트레이스로 시스템 들여다보기
- 컨테이너·도커 완벽 가이드: AI 배포의 기본기
※ 이 글은 GitOps의 핵심 개념을 정리한 입문·실무 안내용 자료입니다. 실제 도구 선택과 파이프라인 구성은 팀 규모와 인프라 환경에 따라 달라질 수 있습니다.