피드로 돌아가기
Kubelet Metrics: How cAdvisor and CRI Collect Kubernetes Stats
Dev.toDev.to
Infrastructure

cAdvisor와 CRI를 통한 Kubernetes 메트릭 수집 아키텍처 분석

Kubelet Metrics: How cAdvisor and CRI Collect Kubernetes Stats

Gulcan2026년 5월 20일33intermediate

Context

Kubelet이 컨테이너 자원 사용량을 추적하기 위해 Linux 커널의 cgroups에 의존하는 구조적 특성 분석. 기존 cAdvisor 기반 수집 방식과 최신 CRI-native 모델 간의 데이터 흐름 및 인터페이스 차이 발생.

Technical Solution

  • cgroups 가상 파일시스템(/sys/fs/cgroup/)의 컨트롤러를 통한 커널 레벨 자원 할당 및 모니터링 수행
  • Kubelet 내부에 임베디드된 cAdvisor를 통한 Node, Pod, Container, Volume 통계 데이터 수집 및 HTTP 엔드포인트 노출
  • CRI gRPC API를 활용하여 런타임 소켓으로부터 Pod 및 Container 메트릭을 직접 수집하는 CRI-native 모델 도입
  • PodAndContainerStatsFromCRI 피처 게이트 활성화를 통한 cAdvisor 의존성 제거 및 CRI 기반 데이터 수집 전환
  • CRI 기반 수집 전환 후에도 Node, Machine, Volume 등 CRI 미제공 데이터 수집을 위해 cAdvisor를 병행 운용하는 하이브리드 구조 설계
  • Metrics Server 0.6.x 버전부터 /stats/summary 대신 /metrics/resource 엔드포인트를 통한 경량 CPU/Memory 메트릭 쿼리 최적화

1. cgroup v2 및 systemd 드라이버 사용 시 KubeletCgroupDriverFromCRI 설정 적용 여부 검토

2. Prometheus/Grafana 스택 구성 시 /metrics/cadvisor와 /metrics/resource 엔드포인트의 데이터 출처 차이 확인

3. PodAndContainerStatsFromCRI 활성화 시 런타임 호환성 및 메트릭 정밀도 변화 모니터링

원문 읽기