핵심 요약
eBPF는 커널 사이드카 없이도 파드 간 통신을 실시간 관측한다. 애플리케이션 코드 수정 없이 L3~L7 전 영역의 가시성을 얻는다.
Cilium Hubble 설치
# Cilium이 이미 설치된 환경
cilium hubble enable --ui
# CLI
hubble observe --pod frontend -f
hubble observe --from-namespace kube-system --verdict DENIED
자주 쓰는 관측 시나리오
1) "파드 A → B 통신이 안 된다"
hubble observe --pod a/app --pod b/app --verdict DROPPED
NetworkPolicy에 걸린 건지, DNS 실패인지, L7 거부인지 즉시 판별.
2) DNS 지연 추적
hubble observe --protocol dns -f
3) HTTP 상태코드 분포
hubble observe --protocol http --http-status 5+
NetworkPolicy 정확도 검증
정책을 만들고 실제로 허용/차단되는지 확인.
hubble observe --pod frontend --to-pod backend --verdict FORWARDED
hubble observe --pod frontend --to-pod db --verdict DROPPED
Pixie — 앱 레벨 eBPF 관측
애플리케이션 코드 수정 없이 HTTP·gRPC·DB 쿼리·함수 호출까지 본다.
# 설치
bash -c "$(curl -fsSL https://withpixie.ai/install.sh)"
px deploy
# PxL 쿼리 (HTTP latency p99)
df = px.DataFrame('http_events', start_time='-5m')
df = df[df['resp_status'] >= 500]
실전 팁
- Grafana Loki 연동: Hubble flow를 logfmt로 내보내 PromQL과 결합
- 샘플링: 초당 수십만 flow 환경에서는 tail sampling으로 비용 제어
- PII 주의: HTTP body 캡처 시 개인정보 마스킹 필터 필수
- 커널 버전: eBPF CO-RE는 5.8+ 권장. 노드 이미지 업데이트 선행
자주 묻는 질문
사이드카 대비 장점?
리소스 오버헤드 낮고 모든 파드에 자동 적용. Istio 없이도 L7 관측 가능.
프로덕션 안정성?
Cilium은 대형 클러스터(쿠버 클라우드 프로바이더 다수) 프로덕션 실적 풍부. 단, 네트워크 CNI 교체는 클러스터 재설치급 작업이므로 사전 검증 필수.
댓글 0