Kube State Metrics
Kube-state-metrics는 워크로드 복제본 수, Pod 단계, 리소스 요청 같은 Kubernetes 오브젝트 상태를 내보냅니다. 이는 상태를 갖지 않는 단일 복제본 메트릭 서비스입니다.
소스 경로
lumie-infra/observability/kube-state-metrics/argocd.yamllumie-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,containerlabel을 기대하는 대시보드가 깨집니다.
검증
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