Solo.io, mis arendab pilvesĂŒsteemide, mikroteenuste, eraldatud konteinerite ja serverivabade arvutuste tööriistu, avaldas avatud tööriistakomplekti BumbleBee, mille eesmĂ€rk on lihtsustada eBPF-programmide ettevalmistamist, levitamist ja kĂ€ivitamist, mis toimivad spetsiaalses virtuaalmasinas Linuxi kernelis ning vĂ”imaldavad hallata vĂ”rguoperatsioone, kontrollida pÀÀsu ja jĂ€lgida sĂŒsteemide tööprotsesse. Kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel.
BumbleBee vĂ”imaldab eBPF-programmi pakendada OCI (Open Container Initiative) formaadis konteineri kujul, mida saab kasutada igas sĂŒsteemis ilma ĂŒmberkompileerimise ja lisakomponentide vajaduseta kasutajaruumi. Interaktsiooni eBPF-koodiga kernelis, sealhulgas eBPF-kĂ€sitlejatest pĂ€rinevate andmete töötlemise, haldab BumbleBee, mis automaatselt ekspordib need andmed meetrikate, histogrammide vĂ”i logide kujul, millele saab ligipÀÀsu nĂ€iteks curl utiliidi abil. Pakutud lĂ€henemine vĂ”imaldab arendajal keskenduda eBPF-koodi kirjutamisele, hĂ€irimata kasutajaruumi koodeksi ja selle koodi interaktsiooni korraldamise, kogumise ja kerneli laadimisega.
eBPF-programmide haldamiseks on pakutud Docker-tyylist utiliiti 'bee', millega saab kohe alla laadida huvipakkuva eBPF-kĂ€sitleja vĂ€lisest hoidlast ja kĂ€ivitada kohalikes sĂŒsteemides. Tööriistakomplekt vĂ”imaldab genereerida C keeles eBPF-kĂ€sitlejate valitud teemade jaoks koodi karkassi (praegu toetatakse ainult vĂ”rguliikluse ja failisĂŒsteemide toimingute kĂ€sitlejaid, mis pĂŒĂŒavad kinni vĂ”rgustikku ja failisĂŒsteemide vĂ€ljakutseid). PĂ”hjal loodud karkassist saab arendaja kiiresti luua oma soovitud funktsionaalsuse.
Erinevalt BCC-st (BPF Compiler Collection) ei toimu BumbleBees iga Linuxi tuuma versiooni jaoks töötleja koodi tĂ€ielikku uuesti kompileerimist (BCC kasutab iga eBPF-programmi kĂ€ivitamisel Clangi abil reaalajas kompileerimist). Ălekantavuse probleemide lahendamiseks arendatakse CO-RE ja libbpf tööriistu, mis vĂ”imaldavad koodi kompileerida ainult ĂŒks kord ja kasutada spetsiaalset universaalset laadijat, mis kohandab laaditavat programmi vastavalt praegusele tuumale ja BTF (BPF Type Format) tĂŒĂŒpidele. BumbleBee on libbpf-i peal oleva tarkvara kiht, mis pakub tĂ€iendavaid tĂŒĂŒpe andmete automaatseks tĂ”lgendamiseks ja kuvamiseks, mis on paigutatud tavalistesse eBPF map-struktuuridesse nagu RingBuffer ja HashMap.
KokkuvĂ”tlikku eBPF-programmi koostamiseks ja OCI-pildina salvestamiseks piisab, kui kĂ€ivitada kĂ€sk âbee build fail_koodiga nimi:versioonâ, ja kĂ€ivitamiseks kĂ€sk âbee run nimi:versioonâ. Vaikimisi saadavad töötlejalt saadud sĂŒndmused terminaliaknasse, kuid vajadusel saab andmeid hankida, kui suunata curl vĂ”i wget tööriistad töötlejaga seotud vĂ”rgupordile. Töötlejaid saab levitada OCI-ĂŒhtsete registrite kaudu, nĂ€iteks vĂ€lise töötleja kĂ€ivitamiseks registrist ghcr.io (GitHub Container Registry) vĂ”ib kĂ€itada kĂ€sku âbee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)â. Töötleja deponeerimiseks registrisse on ette nĂ€htud kĂ€sk âbee pushâ, ja versiooni sidumiseks â âbee tagâ.
Allikas: opennet.ru
