피드로 돌아가기
Dev.toInfrastructure
원문 읽기
cAdvisor와 CRI를 통한 Kubernetes 메트릭 수집 아키텍처 분석
Kubelet Metrics: How cAdvisor and CRI Collect Kubernetes Stats
AI 요약
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 활성화 시 런타임 호환성 및 메트릭 정밀도 변화 모니터링