Infrastructuur & Networking

Een Nieuwe Superkracht voor de Linux Kernel

Binnen de wereld van cloud-native infrastructuur en performance-engineering vindt momenteel een technische aardverschuiving plaats die qua impact vergelijkbaar is met de uitvinding van containers (Docker). De afkorting is eBPF (Extended Berkeley Packet Filter). Hoewel de naam klinkt als een archaïsche netwerktechnologie, is eBPF in werkelijkheid een revolutionaire technologie die het mogelijk maakt om ‘sandbox’ programma’s veilig uit te voeren binnenin het hart van het besturingssysteem: de Linux Kernel, zonder de kernel-broncode aan te hoeven passen of kernelmodules in te laden.

In Jip-en-Janneketaal: eBPF is voor de Linux-kernel wat JavaScript was voor de webbrowser. Het transformeert de rigide kernel in een dynamisch, programmeerbaar platform voor razendsnelle netwerkroutering, diepe veiligheidscontroles en magische observability.

Waarom Traditionele Tracing Faalt in Kubernetes

Wanneer u wilt meten waarom een specifieke applicatie of microservice in Kubernetes traag is, gebruikt u traditioneel ‘agents’ of ‘sidecars’ (zoals in een Service Mesh). Deze moeten als aparte containers naast uw applicatie draaien. Ze onderscheppen het netwerkverkeer, maar doen dit in ‘User Space’. Dit proces van het verplaatsen van datapakketjes tussen de Kernel Space (de hardwarelaag) en User Space (de applicatielaag) kost aanzienlijk veel CPU-cycli en veroorzaakt latency.

Met eBPF kunt u de observatie-code direct in de Kernel inhaken (via hooks op system calls). De eBPF-programma’s analyseren netwerkverkeer, CPU-gebruik en file-access letterlijk op het moment dat het de netwerkkaart (NIC) of processor passeert, met een vrijwel onmeetbare overhead van minder dan 1%. U krijgt hierdoor 100% inzicht in uw gehele Kubernetes-cluster zónder dat u ook maar één regel code in uw applicaties hoeft te wijzigen of sidecars hoeft te injecteren.

Cilium: Netwerken en Security op Steroïden

De bekendste praktische toepassing van eBPF is Cilium. Cilium fungeert als het netwerk- en beveiligingsbrein voor Kubernetes (een CNI-plugin). Traditioneel Kubernetes-netwerken gebeurt via ‘iptables’, een verouderd stuk gereedschap in Linux dat dramatisch traag wordt zodra er tienduizenden netwerkregels (services) in een cluster staan. Cilium omzeilt iptables volledig door netwerkroutering en load-balancing te programmeren in eBPF.

Het resultaat? Een verdubbeling van de netwerk-throughput en drastische reductie van CPU-gebruik. Bovendien begrijpt Cilium API-calls op L7-niveau (applicatieniveau). Het kan daardoor security-policies afdwingen zoals: “Microservice A mag alleen communiceren met Microservice B via HTTP GET requests; HTTP POST wordt direct in de kernel geblokkeerd.”

De Toekomst van Kernel Programming

Omdat eBPF-programma’s door een interne verifier in de kernel worden gecontroleerd, kunnen ze de server niet laten crashen. Ze zijn gegarandeerd veilig, in tegenstelling tot oude custom kernel modules die bij een bug de beruchte ‘Kernel Panic’ veroorzaakten. Grote techbedrijven zoals Netflix (voor performance profiling) en Cloudflare (voor DDoS-mitigatie bij binnenkomst van de server) leunen inmiddels zwaar op eBPF. Het is de onzichtbare kracht die de toekomst van high-performance computing in de cloud definieert. Blijf op de hoogte van infrastructuurinnovaties op platformen zoals Computable.

Volgende: Site Reliability Engineering (SRE)

Inhoudsopgave

Geverifieerd door MonsterInsights