Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

eBPF, Cilium, Dataplane V2 und der ganze Hype (Teil 1)

By Yarel MamanOct 3, 20214 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Wer die aktuellen Trends im Cloud Computing verfolgt, ist mit Sicherheit schon mehrfach über den Begriff eBPF gestolpert. Kaum zu übersehen. Schauen wir uns an, warum das so ist.

Sie suchen nach einer modernen Lösung für Security, Observability und Monitoring – ohne Abstriche bei der Performance? Dann könnte eBPF genau das Richtige sein! In diesem Artikel beleuchten wir, warum dieses Feature des Linux-Kernels zu einem der Top-Buzzwords im cloud-native Stack avanciert ist. Außerdem werfen wir einen Blick auf eine beliebte Out-of-the-box-Cloud-Lösung, die auf eBPF basiert, und zeigen, wie sie Security, Observability und Monitoring Ihres Cloud-Systems auf ein neues Level hebt. Also: Auf in den Bienenstock!

Sie sind bereits mit eBPF vertraut und möchten direkt zu Cilium/Dataplane V2 springen? Dann geht es hier zu Teil 2 !

eBPF ist im Linux-Kernel angesiedelt – einem Terrain, auf dem sich die wenigsten von uns bewegen. Warum also sollte sich jemand, der "in der Cloud zu Hause ist", überhaupt für ein derart hardwarenahes Linux-Kernel-Feature interessieren? Ganz einfach: eBPF ist eine kleine Revolution. Es hat massive Auswirkungen – sowohl auf Low-Level- als auch auf High-Level-Ebene.

Ein Beispiel: Angenommen, Sie wollen eine eigene Logik schreiben, die sämtliche Netzwerkpakete zwischen Ihren Containern genau inspiziert und nur HTTP-Pakete mit bestimmten Kriterien durchlässt.

Es ist allgemein bekannt, dass man sich im Kernel-Space bewegen muss, wenn man Netzwerkverkehr zusammenführen, einspeisen oder einschränken will. Der Linux-Kernel ist die richtige Adresse, um in das Innenleben des Linux-OS und seine umfangreiche Netzwerkschicht einzugreifen – ausgelegt auf Performance, Sicherheit und Zuverlässigkeit.

Bevor eBPF die Bühne betrat, musste man Linux-Kernel-Code schreiben (in der Programmiersprache C). Entweder durch Änderungen am Kernel-Quellcode selbst oder über ein ladbares Kernel-Modul. Abgesehen von der ohnehin hohen Komplexität brachte das einige Risiken mit sich, denn ein Kernel-Modul ist im Grunde eine dynamische Bibliothek (vergleichbar mit einer .DLL- oder .so-Datei), die an den Kernel angedockt wird.

Ein Absturz in Ihrem Code konnte eine Kernel Panic auslösen und das gesamte Betriebssystem lahmlegen. Als Cloud-Nutzer – oder konkret als jemand, der Kubernetes für das Deployment von Microservices einsetzt – sprechen viele weitere Gründe gegen eigenen Kernel-Code: Sicherheit, Entwicklungsgeschwindigkeit, Komplexität oder schlicht eine ungeeignete Umgebung. Im Grunde ist es mit Kanonen auf Spatzen geschossen.

Dann kam eBPF 🐝

Mit eBPF lässt sich Logik in den Kernel einschleusen, ohne den Kernel-Code anzufassen – also direkt aus dem User-Space heraus. eBPF vereinfacht diesen Prozess nicht nur, sondern macht ihn auch deutlich sicherer. Der Verifizierungsprozess von eBPF stellt sicher, dass der eBPF-Code, den Sie in Ihren Kernel laden, gefahrlos ausgeführt werden kann – durch verbindliche Safety-Checks. Geprüft wird zum Beispiel:

  • dass Ihr Code in endlicher Zeit ausgeführt wird (keine Endlosschleifen)
  • dass Ihr Code nicht abstürzt oder fatale Bugs verursacht, die das System schädigen könnten
  • dass der Prozess, der Ihren eBPF-Code lädt, über die nötigen Berechtigungen verfügt
  • dass eine Größenbeschränkung für Ihren Code eingehalten wird
  • dass kein nicht erreichbarer Code zugelassen wird

Zusätzlich zur Verifizierung gelten weitere Einschränkungen – so zwingt eBPF Sie etwa, auf bestimmte Kernel-Ressourcen ausschließlich über spezielle eBPF-Helper-Funktionen zuzugreifen. Kurz gesagt: eBPF bietet Ihnen ein Sicherheitsnetz, einfache Entwicklung, reibungsloses Deployment und mehr Performance. Viele Tools und Engines nutzen heute eBPF, um neue Features für cloud-native workloads transparent und performant bereitzustellen.

Wenn Sie eBPF einmal selbst ausprobieren möchten, schauen Sie sich dieses Video an.

Beliebte Projekte auf eBPF-Basis 🔋

  • Cilium — eBPF-basiertes Networking, Security und Observability für Kubernetes
  • Falco — Cloud-Native Runtime Security
  • Tracee — Runtime Security und Forensik mit eBPF
  • Pixie — Plattform für Application Troubleshooting in Kubernetes (unbedingt anschauen!)

Ich hoffe, diese Informationen waren hilfreich für Sie. Diese Liste zeigt weitere Projekte, die auf eBPF setzen. In Teil 2 nehmen wir Cilium als populäre eBPF-Lösung für K8s genauer unter die Lupe und klären, was Dataplane V2 damit zu tun hat.

Vielen Dank fürs Lesen! Bleiben Sie mit uns in Kontakt – im DoiT Engineering Blog , auf dem DoiT LinkedIn-Kanal und dem DoiT Twitter-Kanal . Karrieremöglichkeiten finden Sie unter https://careers.doit-intl.com .