특징

  • 컨테이너 cpu 및 메모리 사용량과 같은 리소스 사용량 메트릭은 k8s metric을 통해 사용 가능.
  • kubectl top 커맨드 사용하여 사용자가 액세스하거나, hpa 같은 클러스터의 컨트롤러에서 결정을 내릴때 사용.


CPU

일정 기간 동안 CPU 코어에서 평균 사용량으로 리포트. 이 값은 커널에서 제공하는 누적 CPU 카운터보다 높은 비율을 적용해서 얻음.


메모리

working set은 memory pressure에서 풀려날 수 없는 사용중이 메모리의 양. 모든 익명 메모리를 포함하고 일부 캐시된 메모리도 포함.


Metric Server

cluster 전역에서 resource 사용량 데이터를 집계.

kube-up.sh 스크립트에 의해 생성된 클러스터에는 기본적으로 metric server가 deployment 오브젝트로 배포.

metric server는 각 node에서 Kubelet에 의해 노출된 Summary API에서 metric을 수집하고, kubernetes aggregator를 통해 메인 API 서버에 등록된다.


Summary API 소스

Kubelet은 node, volume, pod, container 수준의 통계를 수집. 이 통계를 Summary API에 기록.


https://kubernetes.io/ko/docs/tasks/debug-application-cluster/resource-metrics-pipeline/