BumbleBee — een toolkit voor het vereenvoudigen van het creëren en verspreiden van eBPF-programma's

Solo.io, een bedrijf dat producten ontwikkelt voor het functioneren van cloudsystemen, microservices, geïsoleerde containers en serverless computing, heeft de open-source tool BumbleBee gepubliceerd, gericht op het vereenvoudigen van de voorbereiding, distributie en uitvoering van eBPF-programma's die draaien in een speciale virtuele machine binnen de Linux-kernel en die in staat zijn netwerkoperaties te verwerken, toegang te controleren en de werking van systemen te volgen. De code is geschreven in Go en wordt verspreid onder de Apache 2.0-licentie.

BumbleBee biedt de mogelijkheid om een eBPF-programma te verpakken als een container image in het OCI (Open Container Initiative) formaat, dat op elke system kan worden uitgevoerd zonder recompilatie en zonder extra componenten in de gebruikersruimte. De interactie met de eBPF-code in de kernel, inclusief de verwerking van binnenkomende gegevens van de eBPF-handler, wordt beheerd door BumbleBee, die deze gegevens automatisch exporteert in de vorm van metricen, histogrammen of logs, toegankelijk via bijvoorbeeld de curl-tool. De voorgestelde aanpak stelt ontwikkelaars in staat zich te concentreren op het schrijven van eBPF-code zonder zich zorgen te maken over de organisatie van de interactie met deze code vanuit de gebruikersruimte, de compilatie en het laden in de kernel.

Voor het beheer van eBPF-programma's is er een tool beschikbaar in de stijl van Docker, genaamd ‘bee’, waarmee je direct een eBPF-handler van een externe repository kunt laden en deze op een lokaal systeem kunt uitvoeren. De toolkit maakt het mogelijk om een basiscode-skelet in C te genereren voor eBPF-handlers van een gekozen onderwerp (momenteel worden alleen handlers voor netwerk- en bestandsoperaties ondersteund, die netwerkstack- en bestandssysteemaanroepen onderscheppen). Op basis van het gegenereerde skelet kan de ontwikkelaar snel de gewenste functionaliteit implementeren.

In tegenstelling tot BCC (BPF Compiler Collection) voert BumbleBee geen volledige herbouwingen uit van de handlercode voor elke versie van de Linux-kernel (BCC gebruikt JIT-compilatie via Clang bij elke uitvoering van een eBPF-programma). Voor de oplossing van compatibiliteitsproblemen ontwikkelen we CO-RE en libbpf-tools, waarmee code slechts één keer kan worden verzameld en een speciale universele loader kan worden gebruikt om het geladen programma aan te passen aan de huidige kernel en BTF-typen (BPF Type Format). BumbleBee is een bovenlaag boven libbpf en biedt extra types voor de automatische interpretatie en weergave van gegevens die zijn opgeslagen in de standaard eBPF map-structuren RingBuffer en HashMap.

Om het eindresultaat van het eBPF-programma te compileren en op te slaan als een OCI-image, volstaat het om het commando ‘bee build bestand_met_code naam:versie’ uit te voeren, en voor de uitvoering het commando ‘bee run naam:versie’. Standaard worden de gebeurtenissen van de handler naar de terminal weergegeven, maar indien nodig kunnen de gegevens ook worden opgevraagd met utiliteiten zoals curl of wget via de aan de handler gekoppelde netwerkpoort. Handlers kunnen worden verspreid via OCI-compatibele repositories; bijvoorbeeld, om een externe handler vanuit de repository ghcr.io (GitHub Container Registry) uit te voeren, kan het commando ‘bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)’ worden uitgevoerd. Voor het plaatsen van de handler in de repository wordt het commando ‘bee push’ aangeraden, en voor versiebinding ‘bee tag’.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster