BumbleBee – súprava nástrojov na zjednodušenie tvorby a distribúcie programov eBPF

Solo.io, spoločnosť, ktorá vyvíja produkty pre prevádzkovanie cloudových systémov, mikroslužieb, izolovaných kontajnerov a bezserverových počítačov, zverejnila BumbleBee, open source sadu nástrojov zameranú na zjednodušenie prípravy, distribúcie a spustenia programov eBPF, ktoré bežia na špeciálnom virtuálnom stroji vo vnútri. linuxové jadro a umožňujú spracovanie sieťových operácií, riadenie prístupu a monitorovacie systémy. Kód je napísaný v Go a distribuovaný pod licenciou Apache 2.0.

BumbleBee umožňuje zabaliť program eBPF ako obrázok kontajnera vo formáte OCI (Open Container Initiative), ktorý je možné spustiť na akomkoľvek systéme bez rekompilácie a použitia ďalších komponentov v užívateľskom priestore. Interakciu s eBPF kódom v jadre, vrátane spracovania dát prichádzajúcich z eBPF handlera, preberá BumbleBee, ktorý tieto dáta automaticky exportuje vo forme metrík, histogramov alebo logov, ku ktorým je možné pristupovať napr. nástroj curl. Navrhovaný prístup umožňuje vývojárovi sústrediť sa na písanie kódu eBPF a nenechať sa rozptyľovať organizovaním interakcie s týmto kódom z používateľského priestoru, zostavovania a zavádzania do jadra.

Na správu programov eBPF sa ponúka nástroj „včela“ v štýle Docker, pomocou ktorého si môžete okamžite stiahnuť požadovaný nástroj eBPF z externého úložiska a spustiť ho na lokálnom systéme. Sada nástrojov vám umožňuje vygenerovať rámec kódu v jazyku C pre obslužné nástroje eBPF vybranej témy (v súčasnosti sú podporované iba obslužné nástroje pre sieťové a súborové operácie, ktoré zachytávajú volania sieťového zásobníka a súborových systémov). Na základe vygenerovaného rámca môže vývojár rýchlo implementovať funkcionalitu, o ktorú má záujem.

Na rozdiel od BCC (BPF Compiler Collection), BumbleBee úplne neprestavuje kód obsluhy pre každú verziu linuxového jadra (BCC používa kompiláciu za chodu pomocou Clang pri každom spustení programu eBPF). Na vyriešenie problémov s prenosnosťou sa vyvíjajú nástroje CO-RE a libbpf, ktoré umožňujú zostaviť kód iba raz a použiť špeciálny univerzálny zavádzač, ktorý prispôsobí načítaný program aktuálnemu jadru a formátu BTF Type Format. BumbleBee je doplnok k libbpf a poskytuje ďalšie typy pre automatickú interpretáciu a zobrazenie údajov nachádzajúcich sa v štandardných mapových štruktúrach eBPF RingBuffer a HashMap.

Ak chcete zostaviť konečný program eBPF a uložiť ho ako obrázok OCI, stačí spustiť príkaz „bee build file_with_code name:version“ a spustiť príkaz „bee run name:version“. V predvolenom nastavení budú udalosti prijaté z handlera výstupom do okna terminálu, ale ak je to potrebné, môžete získať údaje pomocou curl alebo wget utilít na sieťový port viazaný na handler. Obslužné programy možno distribuovať prostredníctvom repozitárov kompatibilných s OCI, napríklad ak chcete spustiť externý obslužný program z úložiska ghcr.io (register kontajnerov GitHub), môžete spustiť príkaz „bee run ghcr.io/solo-io/bumblebee/tcpconnect: $ (verzia včiel)“. Na umiestnenie handlera do úložiska sa navrhuje príkaz „bee push“ a na viazanie verzie „bee tag“.

Zdroj: opennet.ru

Pridať komentár