본문으로 건너뛰기

Kube State Metrics

Kube-state-metrics는 워크로드 복제본 수, Pod 단계, 리소스 요청 같은 Kubernetes 오브젝트 상태를 내보냅니다. 이는 상태를 갖지 않는 단일 복제본 메트릭 서비스입니다.

소스 경로

  • lumie-infra/observability/kube-state-metrics/argocd.yaml
  • lumie-infra/observability/kube-state-metrics/helm-values.yaml

런타임 계약

  • kube-state-metrics에 replica 1개
  • headless ClusterIP service
  • release: prometheus가 붙은 ServiceMonitor 활성화
  • ServiceMonitor는 prometheus 네임스페이스에 작성

중요한 리라벨링 동작

Lumie는 내보낸 label을 익숙한 namespace, pod, container label로 다시 씁니다.

- sourceLabels: [exported_namespace]
targetLabel: namespace
- sourceLabels: [exported_pod]
targetLabel: pod

소스 경로: lumie-infra/observability/kube-state-metrics/helm-values.yaml

이 덕분에 Grafana 대시보드와 PromQL 쿼리가 표준 라벨 기대값과 호환됩니다.

장애 지점

  • replica를 둘 이상 실행하면 메트릭 시리즈가 중복되므로 저장소는 의도적으로 single replica를 유지합니다.
  • relabeling을 제거하면 kube-state-metrics 자체는 healthy해도 namespace, pod, container label을 기대하는 대시보드가 깨집니다.

검증

kubectl get applications.argoproj.io -n argocd kube-state-metrics
kubectl get pods -n kube-state-metrics
kubectl get servicemonitors -n prometheus | rg kube-state-metrics
kubectl describe deploy -n kube-state-metrics kube-state-metrics

관련 페이지