BumbleBee - skup alata za pojednostavljenje izrade i distribucije eBPF programa

Solo.io, tvrtka koja razvija proizvode za pokretanje sustava u oblaku, mikroservisa, izoliranih spremnika i računalstva bez poslužitelja, objavila je BumbleBee, alat otvorenog koda s ciljem pojednostavljenja pripreme, distribucije i pokretanja eBPF programa koji se izvode u posebnom virtualnom stroju unutar jezgru Linuxa i omogućuju obradu mrežnih operacija, kontrolu pristupa i nadzor sustava. Kod je napisan u Go i distribuiran pod licencom Apache 2.0.

BumbleBee omogućuje pakiranje eBPF programa kao slike spremnika u OCI (Open Container Initiative) formatu, koji se može pokrenuti na bilo kojem sustavu bez rekompilacije i upotrebe dodatnih komponenti u korisničkom prostoru. Interakciju s eBPF kodom u jezgri, uključujući obradu podataka koji dolaze iz eBPF rukovatelja, preuzima BumbleBee koji te podatke automatski izvozi u obliku metrike, histograma ili dnevnika, kojima se može pristupiti npr. uslužni program za kovrče. Predloženi pristup omogućuje programeru da se usredotoči na pisanje eBPF koda i da ga ne ometa organiziranje interakcije s ovim kodom od korisničkog prostora, sklapanja i učitavanja u kernel.

Za upravljanje eBPF programima nudi se uslužni program “bee” u stilu Dockera, s kojim možete odmah preuzeti eBPF rukovatelj koji vas zanima iz vanjskog repozitorija i pokrenuti ga na lokalnom sustavu. Skup alata vam omogućuje generiranje okvira koda u C-u za eBPF rukovatelje odabrane teme (trenutačno su podržani samo rukovatelji za mrežne i datotečne operacije koje presreću pozive prema mrežnom stogu i datotečnim sustavima). Na temelju generiranog okvira programer može brzo implementirati funkcionalnost koja ga zanima.

Za razliku od BCC (BPF Compiler Collection), BumbleBee ne obnavlja u potpunosti kod rukovatelja za svaku verziju Linux kernela (BCC koristi on-the-fly kompilaciju koristeći Clang svaki put kada se pokrene eBPF program). Kako bi se riješili problemi s prenosivošću, razvijaju se alati CO-RE i libbpf koji vam omogućuju izradu koda samo jednom i korištenje posebnog univerzalnog programa za učitavanje koji prilagođava učitani program trenutnoj jezgri i formatu tipa BTF. BumbleBee je dodatak libbpf-u i pruža dodatne vrste za automatsku interpretaciju i prikaz podataka koji se nalaze u standardnim eBPF strukturama mapa RingBuffer i HashMap.

Da biste izgradili konačni eBPF program i spremili ga kao OCI sliku, samo pokrenite naredbu “bee build file_with_code name:version”, a za pokretanje naredbu “bee run name:version”. Prema zadanim postavkama, događaji primljeni od obrađivača bit će izlazni u prozor terminala, ali ako je potrebno, možete dobiti podatke pomoću uslužnih programa curl ili wget na mrežni priključak povezan s rukovateljem. Rukovatelji se mogu distribuirati putem OCI-kompatibilnih repozitorija, na primjer, za pokretanje vanjskog rukovatelja iz ghcr.io repozitorija (GitHub Container Registry), možete pokrenuti naredbu “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bee verzija)”. Za postavljanje rukovatelja u repozitorij predlaže se naredba "bee push", a za vezanje verzije "bee tag".

Izvor: opennet.ru

Dodajte komentar