지니데비 기록 자세히보기

데브옵스/Orchestration

[Kubernetes] 22. Monitoring

지니데비 2024. 11. 12. 17:28
728x90


Monitoring 목적

 1. 리소스 사용 최적화

  • CPU, 메모리와 같은 리소스 사용량을 확인하여 노드, Pod, 컨테이너가 필요한 리소스를 적절히 사용하고 있는지 확인할 수 있다.
  • 불필요한 자원 낭비를 줄이고, 필요한 리소스를 적절히 할당하여 클러스터 운영 비용을 줄일 수 있다.

2. 장애 대응

  • Pod, 노드 또는 애플리케이션에서 오류가 발생할 경우 신속히 탐지하여 대응할 수 있다.
  • 특히 오류 발생 시 자동 알림 설정을 통해 빠르게 문제를 파악하고 복구할 수 있게 된다.

3. 성능 개선

  • 애플리케이션의 응답 시간, 처리량, 지연 시간과 같은 성능 지표를 수집하여 병목 구간을 찾아낼 수 있다.
  • 이를 통해 애플리케이션과 클러스터의 전반적인 성능을 향상시킬 수 있다.

4. 장기적인 용량 계획:

  • 리소스 사용 데이터를 장기적으로 축적하여 향후 필요할 리소스와 확장 요구를 예측하고 준비할 수 있다.

주요 모니터링 도구

1. Prometheus

  • 쿠버네티스와 잘 통합되는 오픈소스 모니터링 및 경고 시스템이다.
  • Prometheus는 애플리케이션 메트릭을 수집하고, 클러스터와 노드의 상태를 실시간으로 모니터링한다.
  • Alertmanager와 통합하여 특정 이벤트 발생 시 자동 알림을 설정할 수 있다.

2. Grafana

  • Prometheus가 수집한 메트릭을 시각화하는 데 주로 사용된다.
  • 대시보드 형태로 메트릭을 시각화하여 쉽게 분석할 수 있도록 돕고, 여러 데이터 소스를 통합하여 전반적인 클러스터 상태를 한눈에 파악할 수 있다.

3. Kube-state-metrics

  • 쿠버네티스 클러스터 내부의 상태 정보를 수집하는 데 특화된 도구로, Pod, Deployment, DaemonSet, StatefulSet 등의 정보를 수집하여 Prometheus에 제공한다.
  • 클러스터 내 리소스 상태를 쉽게 모니터링할 수 있도록 도와준다.
metrics 설치 방법
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git
kubectl apply -f .
kubectl top node
kubectl top pod

 
4. Node Exporter

  • 노드의 CPU, 메모리, 디스크, 네트워크 사용량 등 다양한 하드웨어 지표를 Prometheus로 수집할 수 있게 한다.
  • 노드 레벨에서 자세한 하드웨어 리소스 상태를 모니터링할 때 사용된다.

5. ELK Stack (Elasticsearch, Logstash, Kibana)

  • 로그 데이터를 수집하고 분석하는 데 유용한 스택이다.
  • Fluentd와 함께 사용하여 쿠버네티스에서 생성되는 애플리케이션과 시스템 로그를 수집하여 Elasticsearch에 저장하고 Kibana를 통해 시각화할 수 있다.

 
 
 

참고

1. Metrics Server
2. Prometheus with Grafana
3. Elastic Stack (Elasticsearch + Kibana)
4. Datadog
5. Dynatrace

728x90
반응형