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
반응형
'데브옵스 > Orchestration' 카테고리의 다른 글
[Kubernetes] 24. Rolling Update, Rollback (0) | 2024.11.14 |
---|---|
[Kubernetes] 23. Managing Application Logs (0) | 2024.11.13 |
[Kubernetes] 21. Scheduler Profiles (0) | 2024.11.11 |
[Kubernetes] 20. Multiple Scheduler (0) | 2024.11.10 |
[Kubernetes] 19. Static Pod (0) | 2024.11.09 |