더북(TheBook)

1.3.2 GitOps만으로는 부족한 이유

GitOps는 깃에 선언된 상태를 클러스터에 자동으로 반영합니다. 하지만 그 상태를 ‘정의하는 작업’은 여전히 사람의 몫입니다.

Deployment 하나를 만들려면 YAML 파일을 작성해야 합니다. 컨테이너 이미지 경로, CPU/메모리 리소스 제한, 헬스체크 경로와 주기, 환경 변수, 볼륨 마운트를 정의해야 합니다. Service, ConfigMap, Secret, HPA까지 더하면 하나의 애플리케이션에 YAML 파일이 5~6개 필요합니다. 헬름 차트를 쓰면 템플릿과 values 파일을 환경별로 관리해야 합니다. 개발, 스테이징, 프로덕션, 각 환경마다 미묘하게 다른 설정을 유지해야 합니다.

모니터링도 마찬가지입니다. 프로메테우스를 설치하고, scrape 설정을 작성하고, 그라파나 대시보드를 구성하고, 알림 규칙(PrometheusRule)을 정의해야 합니다. 또 로그 포워더(Fluent Bit)를 배포하고 로그 집계 시스템(Loki)과 연결해야 합니다. 그리고 장애가 발생하면 메트릭과 로그를 교차 확인하면서 원인을 추적해야 합니다. 네트워크 문제인지, 리소스 부족인지, 코드 버그인지도 구분해야 합니다.