GitOps 운영 모델 가이드
이 문서는 연구실 운영 환경이 왜 GitOps 방식으로 관리되는지 설명하는 가이드다.
GitOps를 한 문장으로 보면
운영 상태를 사람 손으로 직접 고치는 대신, 레포에 선언한 원하는 상태를 기준으로 클러스터를 수렴시키는 운영 방식이다.
핵심은 아래 두 문장이다.
- 변경의 기준은 레포다.
- 클러스터는 그 기준 상태로 계속 맞춰진다.
왜 이 방식이 중요한가
- 어떤 변경이 있었는지 추적하기 쉽다.
- 사람마다 다른 수동 조작을 줄일 수 있다.
- 운영 상태를 레포 diff와 연결해 설명할 수 있다.
- 배포와 인프라 변경을 같은 모델로 볼 수 있다.
운영에서 보는 기본 흐름
- 운영자가 레포를 수정한다.
- 변경이 검토되고 반영된다.
- GitOps 컨트롤러가 변경을 읽는다.
- 클러스터 리소스가 선언 상태로 수렴한다.
- 운영자는 수렴 결과를 확인한다.
여기서 중요한 점은 배포가 곧 서버 접속 후 수동 적용을 뜻하지 않는다는 것이다.
GitOps에서 자주 쓰는 판단 기준
| 기준 | 의미 |
|---|---|
desired state |
레포에 선언된 목표 상태 |
live state |
현재 클러스터에 실제로 존재하는 상태 |
drift |
목표 상태와 실제 상태가 어긋난 경우 |
reconcile |
어긋난 상태를 다시 맞추는 과정 |
즉 운영자는 개별 pod를 손으로 만지기보다 무엇이 drift 되었고 왜 수렴하지 않는가를 본다.
초보자가 자주 놓치는 점
- GitOps는 자동화된
kubectl apply정도로만 보면 부족하다. - 핵심은
변경 기준,수렴,검증을 한 모델로 묶는 데 있다. - live에서 급히 수정한 값은 일시적으로 문제를 덮을 수 있지만, 레포와 어긋나면 다시 뒤집히거나 drift로 남는다.
연구실 문서에서 연결되는 도구
ArgoCD는 GitOps 컨트롤러다.kustomize또는 manifest 구조는 환경별 선언을 정리하는 수단이다.Manual에서는 GitOps 변경 적용, 확인, 롤백 절차를 다룬다.