쿠버네티스 기본 모니터링
왜 쿠버네티스를 모니터링 해야할까?
쿠버네티스에서는 다음과 같은 리소스 사용량을 모니터링해야한다.
Node 수준
- 전체 노드 수
- 각 노드의 상태 (헬스 체크)
- CPU, 메모리 사용량
- 네트워크, 디스크 I/O
Pod 수준
Pod수- 각
Pod의 CPU / 메모리 사용량
그런데 ,쿠버네티스에는 기본적으로 완전한 모니터링 솔루션이 내장되어있지 않다. 이에 별도의 도구를 사용해야한다.
- ex:
Prometheus,Elastic Stack,Datadog,Dynatrace
쿠버네티스 빌트인 모니터링 프로젝트
Heapster
- 초기 쿠버네티스 모니터링 프로젝트
Node/Pod메트릭 수집 및 분석 가능- 지금은 Deprecated
Metrics Server
- Heapster의 경량화 버전
HPA/VPA/kubectl top명령 등에 필요한 실시간 메트릭 제공- 그러나, 메모리에만 저장 -> 과거 데이터 조회 불가
- 작동방식
- 모든 노드의
kubelet에서Metrics Server로 전달한다. kubelet은 내부적으로cAdvisor를 포함하고있으며cAdvisor이Pod의 CPU / 메모리 / 네트워크 사용량을 수집하고KubeletAPI로 노출시킨다.
- 모든 노드의
Metrics Server 설치 방법
팁
실제 모니터링 자체는 외부 솔루션을 추천하지만, HPA, VPA 등이 Metrics Server를 기준으로 이루어지기 때문에 해당 기능을 사용하기 위해서 Metrics Server 설치는 필수이다.
설치
git clone https://github.com/kubernetes-incubator/metrics-server.git
- GitHub Repo 클론
kubectl create -f metrics-server/deploy/1.8+/
- Metrics Server 배포
메트릭 조회
Node 단위
kubectl top node
Pod 단위
kubectl top pod
레퍼런스
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)