오늘의 기술 토픽

eBPF Networking

이 브리프는 커널 레벨에서 네트워크 패킷을 프로그래밍 가능하게 처리하는 eBPF 기술과, 이를 기반으로 한 쿠버네티스 네트워킹 생태계를 정리한다. 전통적인 iptables 기반 네트워킹의 성능·가시성 한계를 eBPF가 어떻게 해결하는지, 그리고 Cilium을 중심으로 한 CNI(Container Network Interface) 스택이 어떻게 확장되고 있는지를 다룬다. 네트워킹뿐 아니라 관측성(observability)과 보안까지 eBPF 하나의 기술로 통합되는 흐름을 소개한다.

🔑 핵심 요점

  • eBPF는 커널을 재컴파일하거나 커널 모듈을 만들지 않고도 커널 안에서 안전하게 커스텀 코드를 실행할 수 있게 해주는 기술이다.
  • 쿠버네티스 네트워킹의 오랜 병목이었던 iptables 규칙 폭증 문제를 eBPF는 해시 테이블 기반 조회로 성능을 크게 개선한다.
  • Cilium은 eBPF를 커널 수준에서 활용해 네트워킹, 로드밸런싱, 네트워크 정책을 하나의 CNI로 통합한 대표적인 프로젝트다.
  • Hubble은 Cilium 위에서 동작하는 관측성 도구로, 서비스 간 트래픽 흐름을 실시간으로 시각화해준다.
  • eBPF는 네트워킹을 넘어 보안(런타임 위협 탐지)과 성능 프로파일링 영역까지 활용 범위가 넓어지고 있다.
  • kube-proxy를 eBPF 기반 데이터플레인으로 대체하는 것이 최근 클러스터 성능 튜닝의 주요 트렌드다.

🛠 핵심 기술 쉽게 이해하기

eBPF

eBPF(extended Berkeley Packet Filter)는 리눅스 커널 안에서 샌드박스 방식으로 작은 프로그램을 실행할 수 있게 해주는 기술이다. 커널 소스를 수정하거나 모듈을 로드하지 않고도 네트워크 패킷, 시스템 콜, 함수 호출 같은 커널 이벤트에 훅을 걸어 로직을 실행할 수 있다.

왜 필요한가 — 커널 모듈 개발 없이도 네트워킹, 보안, 성능 모니터링을 커널 레벨에서 안전하고 빠르게 처리하기 위해 사용한다.

발표에서는 — 이 브리프의 중심 기술로, 뒤에 소개하는 Cilium, Hubble, Tetragon이 모두 eBPF를 기반으로 동작하는 도구로 다뤄진다.

Cilium

Cilium은 eBPF를 활용해 만든 쿠버네티스용 CNI(Container Network Interface) 플러그인이다. 파드 간 네트워킹, 로드밸런싱, 네트워크 정책 적용을 커널 레벨에서 처리해 기존 iptables 기반 솔루션보다 빠르고 확장성이 좋다.

왜 필요한가 — 대규모 클러스터에서 iptables 규칙이 선형적으로 늘어나며 생기는 성능 저하와 네트워크 가시성 부족 문제를 해결하기 위해 도입한다.

발표에서는 — eBPF 기반 CNI의 대표 사례로 소개되며, kube-proxy 대체와 네트워크 정책 적용의 핵심 축으로 다뤄진다.

Hubble

Hubble은 Cilium 프로젝트에서 제공하는 관측성(observability) 도구로, 클러스터 내 서비스 간 트래픽 흐름과 네트워크 정책 적용 현황을 실시간 그래프와 CLI로 보여준다.

왜 필요한가 — eBPF로 수집한 네트워크 데이터를 사람이 이해하기 쉬운 형태로 시각화해 트러블슈팅과 보안 감사를 쉽게 하기 위해 쓴다.

발표에서는 — Cilium의 관측성 확장 도구로 언급되며, 서비스 메시 수준의 가시성을 별도 사이드카 없이 제공하는 사례로 소개된다.

Tetragon

Tetragon은 eBPF 기반 런타임 보안 및 관측 도구로, 프로세스 실행이나 파일 접근 같은 시스템 이벤트를 커널 레벨에서 실시간으로 탐지하고 정책 기반으로 차단할 수 있다.

왜 필요한가 — 네트워킹뿐 아니라 런타임 보안까지 eBPF 하나의 기술 스택으로 다루기 위해 활용한다.

발표에서는 — eBPF 활용 범위가 네트워킹을 넘어 보안까지 확장되는 사례로 짧게 언급된다.

🧭 추구 방향과 흐름

  • iptables에서 eBPF 데이터플레인으로 전환 — 쿠버네티스 클러스터가 커지면서 iptables 기반 kube-proxy의 성능 한계가 드러나고 있고, 이를 eBPF 기반 데이터플레인(Cilium 등)으로 대체하는 것이 표준적인 방향으로 자리잡고 있다.
  • 네트워킹·관측성·보안의 통합 — Cilium, Hubble, Tetragon처럼 하나의 eBPF 스택 위에서 네트워킹, 트래픽 가시성, 런타임 보안을 함께 다루는 방향으로 도구들이 통합되고 있다.
  • 사이드카 없는 서비스 메시 — eBPF는 사이드카 프록시 없이도 커널 레벨에서 mTLS, 로드밸런싱, 정책 적용이 가능해, 서비스 메시의 리소스 오버헤드를 줄이는 방향으로 발전하고 있다.

🚀 바로 활용하기

  1. kind나 minikube로 로컬 쿠버네티스 클러스터를 만들고 Cilium을 CNI로 설치해 기본 네트워킹 동작을 확인해본다.
  2. Cilium 공식 문서의 Getting Started 가이드를 따라 Hubble UI를 켜고 실제 트래픽 흐름을 시각화해본다.
  3. ebpf.io의 입문 자료로 eBPF 프로그램이 커널에서 어떻게 로드되고 실행되는지 개념을 먼저 익힌다.
  4. 기존 클러스터가 iptables 기반 kube-proxy를 쓰고 있다면 eBPF 모드로 전환했을 때의 성능 차이를 벤치마크해본다.

🔗 참고 자료

  • eBPF 공식 사이트 — eBPF 개념과 생태계 전반을 소개하는 공식 입문 자료
  • Cilium 공식 문서 — eBPF 기반 CNI인 Cilium의 설치와 아키텍처를 다루는 공식 문서
  • Kubernetes 공식 문서 — CNI와 kube-proxy 등 쿠버네티스 네트워킹 기본 개념을 확인할 수 있는 공식 문서
  • CNCF — Cilium, eBPF 관련 프로젝트들의 클라우드 네이티브 생태계 위치를 확인할 수 있는 재단 사이트