오늘의 기술 토픽

eBPF Networking

이 글은 특정 밋업 발표 대신, 최근 클라우드 네이티브 생태계에서 주목받고 있는 eBPF 네트워킹 기술을 정리한 브리프입니다. eBPF는 커널을 재컴파일하거나 커널 모듈을 추가하지 않고도 커널 내부에서 코드를 안전하게 실행할 수 있게 해주는 기술로, 네트워킹, 보안, 관측성 영역에서 빠르게 표준으로 자리잡고 있습니다. Cilium과 Hubble 같은 프로젝트들이 이 기술을 기반으로 쿠버네티스 네트워킹과 관측성을 재정의하고 있으며, 사이드카 없는 서비스 메시로의 전환도 활발히 논의되고 있습니다.

🔑 핵심 요점

  • eBPF는 커널 모듈 없이 커널 내부에서 샌드박스된 코드를 실행할 수 있게 해주는 리눅스 커널 기술이다.
  • 쿠버네티스 네트워킹에서 iptables 기반 방식의 성능 한계를 eBPF가 대체하고 있다.
  • Cilium은 eBPF를 활용해 네트워킹, 로드밸런싱, 네트워크 정책을 커널 레벨에서 처리하는 CNI다.
  • Hubble은 eBPF 데이터를 기반으로 클러스터 트래픽을 실시간으로 시각화하는 관측성 도구다.
  • eBPF 기반 사이드카 없는 서비스 메시가 기존 Istio류 사이드카 모델의 대안으로 떠오르고 있다.
  • eBPF는 네트워킹뿐 아니라 보안(Falco, Tetragon)과 성능 프로파일링 영역까지 활용 범위가 넓어지고 있다.

🛠 핵심 기술 쉽게 이해하기

eBPF

eBPF(extended Berkeley Packet Filter)는 리눅스 커널 안에서 안전하게 커스텀 프로그램을 실행할 수 있게 해주는 기술입니다. 커널을 재컴파일하거나 별도 모듈을 로드하지 않고도 패킷 처리, 시스템 콜 추적 같은 저수준 동작에 개입할 수 있습니다.

왜 필요한가 — 커널 수정 없이도 네트워킹, 보안, 관측성 기능을 고성능으로 구현하기 위해 사용됩니다.

발표에서는 — 이 브리프의 핵심 주제로, 이후 소개되는 Cilium, Hubble 같은 도구들이 모두 eBPF 위에서 동작합니다.

Cilium

Cilium은 eBPF를 기반으로 만들어진 쿠버네티스용 CNI(Container Network Interface)입니다. 파드 간 네트워킹, 로드밸런싱, 네트워크 정책 적용을 커널 레벨에서 처리해 기존 iptables 기반 방식보다 빠릅니다.

왜 필요한가 — 대규모 쿠버네티스 클러스터에서 네트워킹 성능과 보안 정책 적용을 동시에 개선하기 위해 사용됩니다.

발표에서는 — eBPF 네트워킹의 대표적인 실제 구현체로 소개됩니다.

Hubble

Hubble은 Cilium과 함께 제공되는 관측성 도구로, eBPF가 수집한 네트워크 트래픽 데이터를 실시간으로 시각화합니다. 서비스 간 통신 흐름과 정책 위반 여부를 UI나 CLI로 확인할 수 있습니다.

왜 필요한가 — 쿠버네티스 클러스터 내부 트래픽을 별도 사이드카 없이 관측하기 위해 사용됩니다.

발표에서는 — eBPF 기반 관측성 사례로 함께 언급됩니다.

XDP

XDP(eXpress Data Path)는 eBPF의 한 응용 분야로, 네트워크 인터페이스 카드(NIC) 드라이버 수준에서 패킷을 아주 이른 시점에 처리할 수 있게 해주는 기술입니다.

왜 필요한가 — DDoS 방어나 초고속 패킷 필터링처럼 극단적인 저지연·고성능 네트워킹이 필요한 경우에 사용됩니다.

발표에서는 — eBPF 네트워킹의 성능 최적화 사례로 함께 다뤄집니다.

🧭 추구 방향과 흐름

  • 사이드카 없는 서비스 메시로의 전환 — 기존 Istio 같은 서비스 메시는 파드마다 사이드카 프록시를 붙이는 방식이라 리소스 오버헤드가 컸습니다. eBPF 기반 접근은 커널 레벨에서 트래픽을 처리해 사이드카 없이도 동일한 기능을 제공하는 방향으로 발전하고 있습니다.
  • 커널 레벨 관측성으로의 이동 — 애플리케이션 코드 수정이나 사이드카 삽입 없이도 eBPF probe만으로 네트워크, 시스템 콜, 성능 데이터를 수집하는 방식이 표준이 되어가고 있습니다. Hubble이 이러한 흐름을 대표합니다.
  • 제로 트러스트 네트워크 정책 — Cilium은 IP 주소가 아닌 워크로드 아이덴티티 기반으로 네트워크 정책을 적용할 수 있어, 동적으로 변하는 쿠버네티스 환경에서도 세밀한 접근 제어가 가능한 방향으로 나아가고 있습니다.

🚀 바로 활용하기

  1. kind이나 minikube로 로컬 쿠버네티스 클러스터를 만들고 Cilium을 CNI로 설치해본다.
  2. cilium connectivity test 명령으로 클러스터 네트워킹이 정상 동작하는지 확인해본다.
  3. Hubble UI를 설치해 클러스터 내부 트래픽 흐름을 시각적으로 관찰해본다.
  4. ebpf.io의 입문 가이드를 읽고 eBPF 프로그램이 커널에서 어떻게 로드·실행되는지 개념을 익힌다.

🔗 참고 자료

  • eBPF 공식 사이트 — eBPF 개념과 생태계 전반에 대한 공식 소개 자료
  • Cilium 공식 문서 — eBPF 기반 CNI인 Cilium의 설치와 아키텍처를 설명하는 공식 자료
  • Kubernetes 공식 문서 — 쿠버네티스 네트워킹 모델과 CNI 개념을 이해하기 위한 기본 자료
  • CNCF — Cilium을 포함한 eBPF 관련 클라우드 네이티브 프로젝트들의 상위 재단