오늘의 기술 토픽
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, 로드밸런싱, 정책 적용이 가능해, 서비스 메시의 리소스 오버헤드를 줄이는 방향으로 발전하고 있다.
🚀 바로 활용하기
- kind나 minikube로 로컬 쿠버네티스 클러스터를 만들고 Cilium을 CNI로 설치해 기본 네트워킹 동작을 확인해본다.
- Cilium 공식 문서의 Getting Started 가이드를 따라 Hubble UI를 켜고 실제 트래픽 흐름을 시각화해본다.
- ebpf.io의 입문 자료로 eBPF 프로그램이 커널에서 어떻게 로드되고 실행되는지 개념을 먼저 익힌다.
- 기존 클러스터가 iptables 기반 kube-proxy를 쓰고 있다면 eBPF 모드로 전환했을 때의 성능 차이를 벤치마크해본다.
🔗 참고 자료
- eBPF 공식 사이트 — eBPF 개념과 생태계 전반을 소개하는 공식 입문 자료
- Cilium 공식 문서 — eBPF 기반 CNI인 Cilium의 설치와 아키텍처를 다루는 공식 문서
- Kubernetes 공식 문서 — CNI와 kube-proxy 등 쿠버네티스 네트워킹 기본 개념을 확인할 수 있는 공식 문서
- CNCF — Cilium, eBPF 관련 프로젝트들의 클라우드 네이티브 생태계 위치를 확인할 수 있는 재단 사이트