오늘의 기술 토픽
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 주소가 아닌 워크로드 아이덴티티 기반으로 네트워크 정책을 적용할 수 있어, 동적으로 변하는 쿠버네티스 환경에서도 세밀한 접근 제어가 가능한 방향으로 나아가고 있습니다.
🚀 바로 활용하기
- kind이나 minikube로 로컬 쿠버네티스 클러스터를 만들고 Cilium을 CNI로 설치해본다.
- cilium connectivity test 명령으로 클러스터 네트워킹이 정상 동작하는지 확인해본다.
- Hubble UI를 설치해 클러스터 내부 트래픽 흐름을 시각적으로 관찰해본다.
- ebpf.io의 입문 가이드를 읽고 eBPF 프로그램이 커널에서 어떻게 로드·실행되는지 개념을 익힌다.
🔗 참고 자료
- eBPF 공식 사이트 — eBPF 개념과 생태계 전반에 대한 공식 소개 자료
- Cilium 공식 문서 — eBPF 기반 CNI인 Cilium의 설치와 아키텍처를 설명하는 공식 자료
- Kubernetes 공식 문서 — 쿠버네티스 네트워킹 모델과 CNI 개념을 이해하기 위한 기본 자료
- CNCF — Cilium을 포함한 eBPF 관련 클라우드 네이티브 프로젝트들의 상위 재단