CLOUD/Monitoring

kubernetes 리소스 메트릭 얻기 (prometheus, kube-state-metric, metric-server)

헐리 2022. 8. 9. 14:28

Prometheus

- kubelet의  통해 container

- target system에서 메트릭을 수집하는 "폴링"방식

<Pulling 방식의 장점>
모든 메트릭에 대한 데이터를 중앙 서버로 보내지 않아도 된다는 점에서 과부하를 방지할 수 있다.

- 프로메테우스가 "주기적으로" exporter에서 메트릭을 읽어와서 수집(메모리와 로컬디스크에 저장됨)   -> exporter는 저장기능 없음

- <장점> 장기간 데이터 유지 -> 시계열 데이터 저장소로 구성되어 있어 많은 양의 정보를 빠르게 검색 가능

<kube-state-metric 사용>

모든 쿠버네티스 오브젝트의 메트릭을 가지고 있는 kube state metric

<kubelet>

kubelet에 포함된 cAdvisor를 통해 컨테이너의 메트릭 정보를 볼 수 있음

 

k8s metric server & k8s client library

/metric/resource/v1alpha

- 메트릭 값 저장 x
- 현재값만 보여줌 (값 보관 주기를 설정가능)
- 클러스터 전역에서 리소스 사용량 조회
- kubelet에서 메트릭 데이터 수집(메모리에 저장)
- <단점1> 특정 값을 구하고 싶을 때, 하나하나 읽어와서 파씽해야하기 때문에 prometheus보다 느리고 정확하지 않음

- <단점2> 특정 k8s 오브젝트에 대한 메트릭만 가져올 수 있음 (node, pod 만?)