BumbleBee - et værktøjssæt til at forenkle oprettelsen og distributionen af ​​eBPF-programmer

Solo.io, en virksomhed, der udvikler produkter til at køre cloud-systemer, mikrotjenester, isolerede containere og serverløs computing, har udgivet BumbleBee, et open source-værktøjssæt, der har til formål at forenkle forberedelsen, distributionen og lanceringen af ​​eBPF-programmer, der kører i en speciel virtuel maskine indeni Linux-kernen og tillade behandling af netværksoperationer, kontrol af adgang og overvågningssystemer. Koden er skrevet i Go og distribueret under Apache 2.0-licensen.

BumbleBee gør det muligt at pakke et eBPF-program som et containerbillede i OCI (Open Container Initiative) formatet, som kan køres på ethvert system uden rekompilering og brug af yderligere komponenter i brugerrummet. Interaktion med eBPF-koden i kernen, herunder behandling af data, der kommer fra eBPF-handleren, overtages af BumbleBee, som automatisk eksporterer disse data i form af metrikker, histogrammer eller logfiler, som kan tilgås f.eks. krølleværktøj. Den foreslåede tilgang tillader udvikleren at fokusere på at skrive eBPF-kode og ikke blive distraheret af at organisere interaktion med denne kode fra brugerplads, montering og indlæsning i kernen.

For at administrere eBPF-programmer tilbydes et "bi"-værktøj i Docker-stil, med hvilket du straks kan downloade eBPF-handleren af ​​interesse fra et eksternt lager og køre det på det lokale system. Værktøjssættet giver dig mulighed for at generere en koderamme i C for eBPF-handlere af et udvalgt emne (i øjeblikket understøttes kun handlere til netværks- og filoperationer, der opsnapper opkald til netværksstakken og filsystemer). Ud fra den genererede ramme kan udvikleren hurtigt implementere den funktionalitet, han er interesseret i.

I modsætning til BCC (BPF Compiler Collection) genopbygger BumbleBee ikke fuldstændigt handlerkoden for hver version af Linux-kernen (BCC bruger on-the-fly kompilering ved hjælp af Clang, hver gang eBPF-programmet startes). For at løse problemer med portabilitet udvikles CO-RE og libbpf værktøjerne, så du kun kan bygge kode én gang og bruge en speciel universel loader, der tilpasser det indlæste program til den aktuelle kerne og BTF Type Format. BumbleBee er en tilføjelse til libbpf og giver yderligere typer til automatisk fortolkning og visning af data placeret i standard eBPF kortstrukturerne RingBuffer og HashMap.

For at bygge det endelige eBPF-program og gemme det som et OCI-billede, skal du bare køre kommandoen "bee build file_with_code name:version", og for at køre kommandoen "bee run name:version". Som standard vil hændelser modtaget fra handleren blive udsendt til terminalvinduet, men om nødvendigt kan du få data ved at bruge curl- eller wget-værktøjer til netværksporten, der er bundet til handleren. Handlere kan distribueres gennem OCI-kompatible repositories, for eksempel for at køre en ekstern handler fra ghcr.io-lageret (GitHub Container Registry), du kan køre kommandoen "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bi-version)”. For at placere en handler i depotet foreslås kommandoen "bee push", og for at binde en version, "bee tag".

Kilde: opennet.ru

Tilføj en kommentar