리소스 사용량 모니터링
리소스 사용량 모니터링 (Tools for Monitoring Resources)
애플리케이션을 스케일링하고 안정적인 서비스를 제공하려면, 배포되었을 때 애플리케이션이 어떻게 동작하는지 이해해야 해요. 쿠버네티스 클러스터에서 컨테이너, 파드, 서비스, 그리고 전체 클러스터의 특성을 검사해 애플리케이션 성능을 살펴볼 수 있습니다. 쿠버네티스는 각 수준에서 애플리케이션의 리소스 사용량에 대한 자세한 정보를 제공합니다. 이 정보를 통해 애플리케이션의 성능을 평가하고, 전체 성능을 개선하기 위해 어디에서 병목을 제거할 수 있는지 확인할 수 있어요.
출처: 문서
본문
쿠버네티스에서 애플리케이션 모니터링은 단일 모니터링 솔루션에 의존하지 않습니다. 새 클러스터에서는 리소스 메트릭 또는 전체 메트릭 파이프라인을 사용해 모니터링 통계를 수집할 수 있어요.
리소스 메트릭 파이프라인
리소스 메트릭 파이프라인은 Horizontal Pod Autoscaler 컨트롤러와 kubectl top 유틸리티 같은 클러스터 구성 요소와 관련된 제한된 메트릭 집합을 제공합니다. 이러한 메트릭은 가볍고, 단기적이며, 메모리 내 metrics-server에 의해 수집되고 metrics.k8s.io API를 통해 노출됩니다.
metrics-server는 클러스터의 모든 노드를 발견하고 각 노드의 kubelet에 CPU와 메모리 사용량을 질의합니다. kubelet은 쿠버네티스 마스터와 노드 사이의 다리 역할을 하며, 머신에서 실행되는 파드와 컨테이너를 관리합니다. kubelet은 각 파드를 구성 요소 컨테이너로 변환하고 컨테이너 런타임 인터페이스를 통해 컨테이너 런타임에서 개별 컨테이너 사용 통계를 가져옵니다. 컨테이너를 구현하기 위해 Linux cgroups와 namespaces를 사용하는 컨테이너 런타임을 사용하는데 컨테이너 런타임이 사용 통계를 게시하지 않는다면, kubelet은 그 통계를 직접 조회할 수 있습니다(cAdvisor의 코드 사용). 그 통계가 어떻게 도착하든 kubelet은 집계된 파드 리소스 사용 통계를 metrics-server Resource Metrics API를 통해 노출합니다. 이 API는 kubelet의 인증되고 읽기 전용인 포트의 /metrics/resource에서 제공됩니다.
전체 메트릭 파이프라인
전체 메트릭 파이프라인은 더 풍부한 메트릭에 접근할 수 있게 해줍니다. 쿠버네티스는 Horizontal Pod Autoscaler 같은 메커니즘을 사용해 현재 상태에 따라 클러스터를 자동 스케일링하거나 적응시켜 이러한 메트릭에 응답할 수 있습니다. 모니터링 파이프라인은 kubelet에서 메트릭을 가져온 다음 custom.metrics.k8s.io 또는 external.metrics.k8s.io API를 구현하는 어댑터를 통해 쿠버네티스에 노출합니다.
쿠버네티스는 CNCF Observability and Analysis - Monitoring Projects 중 하나인 OpenMetrics와 함께 동작하도록 설계되었으며, 이는 Prometheus exposition format을 기반으로 거의 100% 역호환되는 방식으로 신중하게 확장한 것입니다.
CNCF Landscape를 살펴보면 메트릭 데이터를 스크래핑 하고 이를 사용해 클러스터를 관찰하도록 도와주는 쿠버네티스와 함께 동작할 수 있는 많은 모니터링 프로젝트를 볼 수 있습니다. 필요에 맞는 도구를 선택하는 것은 여러분의 몫입니다. 관측성과 분석을 위한 CNCF 랜드스케이프는 오픈소스 소프트웨어, 유료 소프트웨어-as-a-service, 그 외 상업 제품이 섞여 있습니다.
전체 메트릭 파이프라인을 설계하고 구현할 때 그 모니터링 데이터를 쿠버네티스에 다시 제공할 수 있습니다. 예를 들어 HorizontalPodAutoscaler는 처리된 메트릭을 사용해 워크로드 구성 요소에 대해 몇 개의 파드를 실행할지 계산할 수 있습니다.
가능한 솔루션의 범위가 매우 넓기 때문에 전체 메트릭 파이프라인을 쿠버네티스 구현에 통합하는 것은 쿠버네티스 문서의 범위 밖입니다.
모니터링 플랫폼의 선택은 필요, 예산, 기술 리소스에 크게 좌우됩니다. 쿠버네티스는 특정 메트릭 파이프라인을 권장하지 않습니다. 많은 옵션이 사용 가능합니다. 모니터링 시스템은 OpenMetrics 메트릭 전송 표준을 처리할 수 있어야 하며, 인프라 플랫폼의 전반적 설계와 배포에 가장 잘 맞도록 선택해야 합니다.
더 알아보기 (Learn more)
다음을 포함한 추가 디버깅 도구에 대해 알아보세요: