Tradiční monitoring funguje jako rentgen — vidíte obraz, ale musíte hádat, co se děje uvnitř. eBPF je jako endoskop: jdete přímo do jádra operačního systému a sledujete každý pakět, syscall a alokaci paměti v reálném čase. Bez agentů. Bez instrumentace kódu. Bez restartu.
Co je eBPF a proč byste měli vědět¶
eBPF (extended Berkeley Packet Filter) je technologie zabudovaná přímo v linuxovém jádře, která umožňuje spouštět sandboxované programy v kernel space. Původně vznikla pro filtrování síťových paketů, ale dnes pokrývá observabilitu, bezpečnost i networking.
Klíčová vlastnost: eBPF programy se připojují k hook pointům v jádře — k syscallům, síťovým událostem, scheduler eventům, file system operacím. Jádro je verifikuje před spuštěním (žádné nekonečné smyčky, žádný přístup k zakázané paměti), takže jsou bezpečné i v produkci.
Proč je to revoluce? Klasický monitoring vyžaduje buď agenty (overhead, údržba), nebo instrumentaci aplikace (změny kódu, vendor lock-in). eBPF nepotřebuje ani jedno — sleduje systém zevnitř jádra, transparentně pro aplikace.
Tři pilíře eBPF observability¶
1. Síťová observabilita¶
eBPF vidí každý pakět, který projde síťovým stackem. Na rozdíl od tradičních nástrojů (tcpdump, Wireshark) to dělá efektivně — filtruje a agreguje přímo v jádře, takže do user space posílá jen relevantní data.
- Cilium Hubble: Plná L3/L4/L7 viditelnost v Kubernetes — kdo komunikuje s kým, latence, error rate, DNS queries
- Retransmise TCP: Detekce packet lossu bez pcap — identifikace problematických nodů v clusteru
- Service map: Automatická mapa závislostí mezi mikroslužbami, bez změny kódu
2. Application performance¶
eBPF umí sledovat výkon aplikací bez APM agentů. Pomocí uprobe/uretprobe se připojí k funkcím v user space a měří latenci, alokace, I/O operace.
Sledování latence HTTP handlerů v Go aplikaci¶
pomocí bpftrace — bez změny kódu!¶
bpftrace -e ‘uprobe:/usr/bin/myapp:net/http.(*ServeMux).ServeHTTP {
@start[tid] = nsecs;
}
uretprobe:/usr/bin/myapp:net/http.(*ServeMux).ServeHTTP /
@start[tid]/ {
@latency_us = hist((nsecs - @start[tid]) / 1000);
delete(@start[tid]);
}’
Tento přístup má overhead pod 2 % — řádově méně než tradiční APM agenti (typicky 5–15 %).
3. Security monitoring¶
eBPF je základ nové generace runtime security nástrojů. Místo pravidel na úrovni firewallu sleduje chování procesů v reálném čase:
- Tetragon (Cilium): Kernel-level security observability — sledování syscallů, file access, network connections na úrovni procesu
- Falco + eBPF driver: Runtime threat detection s eBPF backendem místo kernel modulu
- Detekce anomálií: Process spustil shell v kontejneru? Připojil se na neobvyklý port? eBPF to zachytí okamžitě
eBPF v Kubernetes — kde to dává největší smysl¶
Kubernetes je ideální prostředí pro eBPF. Dynamické prostředí s tisíci kontejnerů, ephemeral pody, service mesh — tradiční monitoring nestíhá. eBPF řeší několik bolestivých problémů:
- Nahrazení kube-proxy: Cilium s eBPF nahrazuje iptables — lepší výkon, lepší viditelnost, škálování na tisíce služeb
- Service mesh bez sidecarů: Cilium Service Mesh implementuje mTLS a L7 politiky přímo v jádře — žádné Envoy sidecar kontejnery, nižší overhead
- Network policies: Nativní enforcement v jádře, ne přes iptables řetězce
- Pod-level metriky: CPU, paměť, síťový provoz — agregované přímo v jádře per cgroup
Ekosystém nástrojů v roce 2025¶
Ekosystém kolem eBPF v roce 2025 vyspěl do produkční kvality:
- Cilium 1.16+: CNI plugin pro Kubernetes s plnou eBPF observabilitou a service mesh
- Grafana Beyla: Auto-instrumentace HTTP/gRPC služeb pomocí eBPF — zero-code observability
- Pixie (CNCF): Kubernetes observability platform — auto-telemetrie bez agentů
- bpftrace: High-level tracing jazyk pro ad-hoc debugging — „awk pro kernel tracing”
- Tetragon: Security observability a runtime enforcement od tvůrců Cilium
- Kepler: Kubernetes energy monitoring pomocí eBPF — sledování spotřeby energie per pod
Praktické nasazení — jak začít¶
eBPF vyžaduje Linux kernel 5.10+ (ideálně 5.15+ nebo 6.x pro všechny funkce). Většina cloudových providerů (AKS, EKS, GKE) už nabízí nody s dostatečně novým jádrem.
- Začněte s Cilium: Nahraďte výchozí CNI (Calico/Flannel) za Cilium — získáte síťovou observabilitu „zdarma”
- Zapněte Hubble: Dashboard pro vizualizaci síťového provozu — service map, latence, DNS
- Přidejte Grafana Beyla: Auto-instrumentace pro RED metriky (Rate, Errors, Duration) bez změny kódu
- Security s Tetragonem: Runtime políčky — detekce podezřelého chování v kontejnerech
- Ad-hoc debugging: Naučte tým bpftrace pro rychlou diagnostiku produkčních problémů
Na co si dát pozor¶
eBPF není stříbrná kulka. Několik věcí, které je dobré vědět předem:
- Kernel verze: Starší distribuce (RHEL 7, CentOS 7) nemají dostatečnou podporu — plánujte upgrade
- BTF (BPF Type Format): Pro CO-RE (Compile Once, Run Everywhere) potřebujete kernel s BTF — zkontrolujte před nasazením
- Windows: eBPF for Windows existuje, ale je výrazně za Linuxem — primárně Linux technologie
- Learning curve: Psaní vlastních eBPF programů vyžaduje znalost C a kernel internals — pro většinu týmů stačí hotové nástroje
- Privilegia: eBPF programy potřebují CAP_BPF capability — bezpečnostní implikace v multi-tenant prostředí
Shrnutí¶
eBPF je nejdůležitější infrastrukturní technologie dekády. V roce 2025 přešla z experimentální fáze do mainstream produkčního nasazení. Pro Kubernetes clustery je Cilium prakticky standard. Pro observabilitu nabízí bezagentní přístup s minimálním overheadem.
CORE SYSTEMS implementuje eBPF-based observabilitu a security monitoring pro Kubernetes i bare-metal infrastrukturu.