소개
Kubernetes 모니터링은 쿠버네티스 클러스터와 그 안에서 실행되는 애플리케이션의 상태, 성능, 리소스 활용도에 대한 데이터를 수집, 분석 및 시각화하는 프로세스를 말합니다. 이를 통해 DevOps, SRE 및 클러스터 관리자가 Kubernetes 클러스터 환경에서 리소스 부족, 높은 CPU 또는 메모리 사용량, 노드 또는 컨테이너의 장애 등과 같은 문제를 식별하고 해결하는 데 도움이 됩니다.
Kubernetes 모니터링은 클러스터의 상태, 안정성 및 성능을 보장하여 동적 환경에서 안정적이고 효율적인 컨테이너화된 애플리케이션을 실행할 수 있도록 하는 측면에서 중요합니다. 문제가 발생하면 원인을 정확히 파악하기 어려울 수 있습니다. Kubernetes 모니터링을 적절하게 수행하면, 문제가 발생하고 있는 또는 발생할 가능성이 있는 위치를 확인하고 조치할 수 있습니다.
Kubernetes 모니터링에는 메트릭 수집, 알림 설정, 데이터 시각화 및 대시보드, 리소스 사용률 분석, 애플리케이션 모니터링 등이 포함됩니다. 이러한 측면을 모두 다루는 인기 있는 모니터링 도구 조합은 Prometheus, Grafana, Alertmanager입니다.
Prometheus Stack은 Kubernetes 클러스터에서 Prometheus 및 관련 구성 요소의 배포, 관리 및 모니터링을 용이하게 하도록 설계된 도구 및 구성 모음입니다.
학습의 결과로 Prometheus, Grafana, Alertmanager 및 관련 리소스를 Kubernetes 클러스터에 배포합니다. 이후 이를 이용하여 메트릭을 수집하고, 대시보드를 생성하고, 알림을 설정하여 Kubernetes 클러스터를 모니터링 할 수 있습니다. 더 나아가서 Observability 구축에도 활용할 수 있습니다.
Prometheus란?
Prometheus는 메트릭 데이터를 수집하고, 시계열 데이터베이스(DB)에 저장하는 시스템 모니터링 도구입니다. 이는 시계열 데이터를 쿼리하기 위한 PromQL을 사용하며 알림도 제공하고 있습니다.
Prometheus의 주요 특징은 다음과 같습니다.
•
시계열 데이터로 메트릭 이름과 key/value로 저장되는 다차원 데이터 모델
•
PromQL을 활용한 강력한 쿼리 및 알림 기능
•
Pull 방식을 이용한 메트릭 수집
•
중간 게이트웨이를 활용한 Push 방식 지원
•
뛰어난 데이터 시각화 및 대시보드 지원
•
다양한 플랫폼 연동 지원
•
분산 스토리지에 의존하지 않고 단일 서버 노드로 운영 가능
Grafana란?
Grafana는 시계열 데이터, 로그 데이터, DB 데이터를 시각화하고 대시보드를 구성할 수 있는 도구입니다. 데이터를 직접 저장하는 것이 아니기 때문에, 저장 위치에 상관없이 쿼리, 탐색, 시각화가 가능합니다. 특히 Prometheus와 같은 시계열 DB 시각화하는 데 많은 장점이 있습니다.
Grafana의 주요 특징은 다음과 같습니다.
•
다양한 데이터 소스 추가 및 쿼리 지원
•
다양한 대시보드 패널 및 플러그인 지원
•
템플릿 및 변수를 활용한 동적 대시보드 지원
•
대시보드 공유 및 Import 기능
학습 내용
•
Prometheus Stack Helm 차트 리포지터리를 구성하는 방법
•
Prometheus Stack Helm 차트의 구성 정보를 배포 환경에 맞게 설정하는 방법
•
Helm 차트로 Prometheus Stack을 배포하고 확인하는 방법
아키텍처
사전 준비사항
기본 요건
•
Kubernetes에 대한 기본 개념
•
Helm, kubectl에 대한 기본 개념
•
Kubernetes 모니터링에 대한 기본 개념
필요 항목
•
Prometheus Stack를 배포할 Kubernetes 클러스터가 구축되어 있어야 합니다.
•
TLS/SSL 인증서를 사용할 수 있도록 cert-manager가 구축되어 있어야 합니다.
•
Ingress 리소스를 사용할 수 있도록 NGINX Ingress Controller가 구축되어 있어야 합니다.