BumbleBee - un set de instrumente pentru a simplifica crearea și distribuirea programelor eBPF

Solo.io, o companie care dezvoltă produse pentru rularea sistemelor cloud, microservicii, containere izolate și calculatoare fără server, a publicat BumbleBee, un set de instrumente open source menit să simplifice pregătirea, distribuția și lansarea programelor eBPF care rulează într-o mașină virtuală specială din interior. nucleul Linux și permit procesarea operațiunilor de rețea, controlul accesului și monitorizarea sistemelor. Codul este scris în Go și distribuit sub licența Apache 2.0.

BumbleBee face posibilă împachetarea unui program eBPF ca imagine container în format OCI (Open Container Initiative), care poate fi rulat pe orice sistem fără recompilare și utilizarea de componente suplimentare în spațiul utilizatorului. Interacțiunea cu codul eBPF din nucleu, inclusiv procesarea datelor care provin de la handlerul eBPF, este preluată de BumbleBee, care exportă automat aceste date sub formă de metrici, histograme sau jurnale, care pot fi accesate, de exemplu, folosind utilitate curl. Abordarea propusă permite dezvoltatorului să se concentreze pe scrierea codului eBPF și să nu fie distras prin organizarea interacțiunii cu acest cod din spațiul utilizatorului, asamblare și încărcare în kernel.

Pentru a gestiona programele eBPF, este oferit un utilitar „bee” în stil Docker, cu care puteți descărca imediat handlerul eBPF de interes dintr-un depozit extern și îl puteți rula pe sistemul local. Setul de instrumente vă permite să generați un cadru de cod în C pentru manipulatorii eBPF ai unui subiect selectat (în prezent sunt acceptați numai handlerele pentru operațiuni de rețea și fișiere care interceptează apelurile către stiva de rețea și sistemele de fișiere). Pe baza cadrului generat, dezvoltatorul poate implementa rapid funcționalitatea de care este interesat.

Spre deosebire de BCC (BPF Compiler Collection), BumbleBee nu reconstruiește complet codul de gestionare pentru fiecare versiune a nucleului Linux (BCC folosește compilarea on-the-fly folosind Clang de fiecare dată când programul eBPF este lansat). Pentru a rezolva problemele de portabilitate, instrumentele CO-RE și libbpf sunt în curs de dezvoltare, permițându-vă să construiți cod o singură dată și să utilizați un încărcător universal special care adaptează programul încărcat la nucleul actual și la formatul de tip BTF. BumbleBee este un add-on pentru libbpf și oferă tipuri suplimentare pentru interpretarea și afișarea automată a datelor situate în structurile standard de hărți eBPF RingBuffer și HashMap.

Pentru a construi programul final eBPF și a-l salva ca imagine OCI, trebuie doar să rulați comanda „bee build file_with_code name:version” și să rulați comanda „bee run name:version”. În mod implicit, evenimentele primite de la handler vor fi transmise în fereastra terminalului, dar dacă este necesar, puteți obține date utilizând utilitare curl sau wget la portul de rețea legat de handler. Handler-urile pot fi distribuite prin depozite compatibile cu OCI, de exemplu, pentru a rula un handler extern din depozitul ghcr.io (GitHub Container Registry), puteți rula comanda „bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(versiunea albinelor)”. Pentru a plasa un handler în repository, se propune comanda „bee push”, iar pentru a lega o versiune, „bee tag”.

Sursa: opennet.ru

Adauga un comentariu