GitOps
GitOps
Git을 단일 진실 공급원(Single Source of Truth)으로 사용하여 인프라와 애플리케이션을 선언적으로 관리하는 운영 모델로, Git Push를 통해 자동으로 배포·동기화되며 Kubernetes 환경에서 널리 사용
목적: 선언적 인프라 관리, 배포 자동화, 버전 관리, 감사 추적
특징: Git 중심, 선언적(Desired State), Pull 기반 배포, 자동 동기화, Immutable
핵심 원칙: Git = Single Source of Truth(모든 설정 Git 저장), 선언적 시스템(Desired State 정의), 자동화된 변경 적용(Operator가 감시/동기화), 소프트웨어 에이전트(Pull 모델), 지속적 조정(Drift 탐지/복구)
GitOps 도구: Argo CD(K8s 배포/멀티 클러스터/UI 우수), Flux(CNCF 졸업/경량/GitOps Toolkit), Jenkins X(CI/CD 통합/자동 파이프라인), Rancher Fleet(엣지/멀티 클러스터)
동작 흐름: ① 개발자가 Git에 매니페스트 커밋 → ② GitOps Operator가 Git 리포지토리 감시 → ③ 변경 감지 시 클러스터 상태와 비교 → ④ Drift 발견 시 자동 동기화(Apply) → ⑤ 상태 일치 확인
장점: Git 기반 버전 관리/롤백, 선언적 관리로 일관성, 자동 배포로 속도, 감사 추적(Git 히스토리), 재해 복구 용이
단점: Git 의존성, K8s 중심, 초기 설정 복잡도, Secret 관리 어려움
보안: RBAC(Git 접근 제어), Git 서명(GPG), Secret 암호화(Sealed Secrets/SOPS), 정책 검증(OPA/Kyverno)
적용사례: 멀티 클러스터 관리, 환경별 배포(dev/stage/prod), 재해 복구, 규정 준수
비교: GitOps(Git 중심/Pull/선언적) vs Traditional CI/CD(Push/명령형) vs IaC(Terraform/인프라만)
연관: Kubernetes, Argo CD, Flux, IaC, DevOps