본문으로 건너뛰기
Prometheus & Grafana Operator 설치 실습

Prometheus & Grafana Operator 설치 실습

Kubernetes 환경에서 Operator 패턴을 활용하여 모니터링 시스템을 구축하고 자동화하는 실습 가이드입니다.


1. 실습 개요 및 아키텍처

본 실습에서는 Prometheus와 Grafana를 수동으로 배포하는 대신, Operator를 통해 이들의 생명주기를 관리하는 방법을 배웁니다.

구성 요소역할비고
Prometheus OperatorPrometheus 서버, Alertmanager, ServiceMonitor 관리타겟 자동 발견
Grafana OperatorGrafana 인스턴스, DataSource, Dashboard 관리설정 자동화
ServiceMonitor어떤 서비스에서 메트릭을 수집할지 정의하는 CRD핵심 설정 객체

2. 전체 데이터 흐름

    graph LR
    App[애플리케이션 Pod] -- "Metrics" --> SM[ServiceMonitor]
    SM -- "타겟 정보 전달" --> PROM[Prometheus Server]
    PROM -- "데이터 시각화" --> GRAF[Grafana UI]
    
    subgraph Operators
    PO[Prometheus Operator] -.-> PROM
    GO[Grafana Operator] -.-> GRAF
    end
  

3. 설치 단계 요약

[1단계] 네임스페이스 생성

kubectl create namespace monitoring

[2단계] Prometheus Operator 설치 (Helm)

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring

[3단계] Grafana Operator 설치 (Helm)

# Grafana Operator 차트는 OCI 아티팩트로 배포됩니다 (`helm repo add` 불필요)
helm install grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --namespace monitoring

4. 핵심 리소스 정의 (CRD)

Operator 설치 후에는 다음과 같은 커스텀 리소스를 통해 설정을 관리합니다.

리소스 유형용도
Prometheus실제 Prometheus 서버 인스턴스를 정의
ServiceMonitor메트릭을 수집할 엔드포인트(Service) 지정
GrafanaGrafana 서버 인스턴스 정의
GrafanaDatasourceGrafana에 연결할 데이터 소스(Prometheus 등) 설정
GrafanaDashboardJSON 또는 Grafana.com ID를 통한 대시보드 배포

5. 설치 순서 워크플로우

    flowchart TD
    A[1. Namespace monitoring 생성] --> B[2. Prometheus Operator 설치]
    B --> C[3. Prometheus 인스턴스 생성]
    C --> D[4. ServiceMonitor 등록]
    D --> E[5. Grafana Operator 설치]
    E --> F[6. Grafana 인스턴스 및 DataSource 설정]
    F --> G[7. Dashboard 프로비저닝]
  

6. 요약

Prometheus와 Grafana Operator를 사용하면 “모니터링 대상이 추가될 때마다 설정을 직접 수정할 필요 없이”, 단지 ServiceMonitor 리소스를 추가하는 것만으로 메트릭 수집을 자동화할 수 있습니다. 이는 선언적 인프라 관리의 핵심 가치를 보여줍니다.