BumbleBee – tööriistakomplekt eBPF-programmide loomise ja levitamise lihtsustamiseks

Pilvesüsteemide, mikroteenuste, isoleeritud konteinerite ja serverita andmetöötluse jaoks mõeldud tooteid arendav ettevõte Solo.io on avaldanud avatud lähtekoodiga tööriistakomplekti BumbleBee, mille eesmärk on lihtsustada spetsiaalses virtuaalses masinas töötavate eBPF-programmide ettevalmistamist, levitamist ja käivitamist. Linuxi kernel ja võimaldavad töödelda võrguoperatsioone, juhtida juurdepääsu ja jälgida süsteeme. Kood on kirjutatud Go-s ja seda levitatakse Apache 2.0 litsentsi all.

BumbleBee võimaldab pakendada eBPF programmi OCI (Open Container Initiative) formaadis konteinerpildiks, mida saab käivitada mis tahes süsteemis ilma ümberkompileerimiseta ja kasutajaruumis lisakomponente kasutamata. Koostoime eBPF-koodiga tuumas, sealhulgas eBPF-i töötlejalt tulevate andmete töötlemine, võtab üle BumbleBee, kes ekspordib need andmed automaatselt mõõdikute, histogrammide või logide kujul, millele pääseb juurde näiteks kasutades lokkide utiliit. Kavandatud lähenemisviis võimaldab arendajal keskenduda eBPF-koodi kirjutamisele ja mitte lasta end segada selle koodiga suhtlemise korraldamisel kasutajaruumist, kokkupanekust ja kernelisse laadimisest.

eBPF programmide haldamiseks pakutakse Dockeri stiilis “bee” utiliiti, millega saad kohe välisest hoidlast huvipakkuva eBPF-i töötleja alla laadida ja kohalikus süsteemis käivitada. Tööriistakomplekt võimaldab genereerida C-vormingus koodiraamistikku valitud teema eBPF-i töötlejatele (praegu toetatakse ainult võrgu- ja failioperatsioonide käitlejaid, mis peatavad võrgupinu ja failisüsteemide kõnesid). Loodud raamistiku põhjal saab arendaja teda huvitava funktsionaalsuse kiiresti juurutada.

Erinevalt BCC-st (BPF Compiler Collection) ei ehita BumbleBee iga Linuxi kerneli versiooni käitleja koodi täielikult ümber (BCC kasutab iga kord, kui eBPF-i programm käivitatakse, Clangi abil käigupealset kompileerimist). Teisaldatavusega seotud probleemide lahendamiseks töötatakse välja CO-RE ja libbpf tööriistad, mis võimaldavad teil koodi ehitada ainult üks kord ja kasutada spetsiaalset universaalset laadijat, mis kohandab laaditud programmi praeguse kerneli ja BTF-i tüübivorminguga. BumbleBee on libbpfi lisand ja pakub täiendavaid tüüpe andmete automaatseks tõlgendamiseks ja kuvamiseks, mis asuvad standardsetes eBPF-i kaardistruktuurides RingBuffer ja HashMap.

Lõpliku eBPF-programmi koostamiseks ja OCI-pildina salvestamiseks käivitage lihtsalt käsk "bee build file_with_code name:version" ja käivitage käsk "bee run name:version". Vaikimisi väljastatakse töötlejalt saadud sündmused terminali aknasse, kuid vajadusel saate andmeid hankida curl või wget utiliitide abil töötlejaga seotud võrguporti. Käsitlejaid saab levitada OCI-ga ühilduvate hoidlate kaudu, näiteks välise töötleja käitamiseks ghcr.io hoidlast (GitHubi konteineri register), võite käivitada käsu „bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bee versioon)”. Käsitleja hoidlasse paigutamiseks pakutakse käsku "bee push" ja versiooni sidumiseks "bee tag".

Allikas: opennet.ru

Lisa kommentaar