BumbleBee — nástroj pro zjednodušení vytváření a distribuce eBPF programů

Společnost Solo.io, která vyvíjí produkty pro zajištění provozu cloudových systémů, mikroslužeb, izolovaných kontejnerů a serverless výpočtů, zveřejnila otevřený nástroj BumbleBee, zaměřený na usnadnění přípravy, distribuce a spuštění eBPF programů, které běží ve speciálním virtuálním stroji uvnitř jádra Linux a umožňují zpracovávat síťové operace, kontrolovat přístup a sledovat práci systémů. Kód je napsán v jazyce Go a je distribuován pod licencí Apache 2.0.

BumbleBee umožňuje zabalit eBPF program jako kontejnerový obraz ve formátu OCI (Open Container Initiative), který lze spouštět na jakýchkoli systémech bez potřeby pře-kompilace a použití dalších komponent ve uživatelském prostoru. Interakci s eBPF kódem v jádře, včetně zpracování dat přicházejících z eBPF handleru, zajišťuje BumbleBee, který automaticky exportuje tato data ve formě metrik, histogramů nebo logů, k nimž je možné získat přístup například pomocí nástroje curl. Navrhovaný přístup umožňuje vývojářovi soustředit se na psaní eBPF kódu a nevěnovat pozornost organizaci interakce s tímto kódem z uživatelského prostoru, sestavení a nahrání do jádra.

Pro správu eBPF programů je k dispozici utilita „bee“, která funguje na styl Dockeru, pomocí níž lze okamžitě stáhnout zajímavý eBPF handler z externího repozitáře a spustit jej na lokálním systému. Nástroj umožňuje generovat kostru kódu v jazyce C pro eBPF handlery vybrané tematiky (v současnosti jsou podporovány pouze handlery síťových a souborových operací, které interceptují volání síťového zásobníku a souborových systémů). Na základě vytvořené kostry může vývojář rychle realizovat zajímavou funkcionalitu.

Na rozdíl od BCC (BPF Compiler Collection) neprovádí BumbleBee kompletní překlad kódu zpracovatele pro každou verzi jádra Linux (BCC využívá kompilaci za běhu pomocí Clang při každém spuštění eBPF programu). Pro řešení problémů s přenášením se vyvíjejí nástroje CO-RE a libbpf, které umožňují sestavit kód pouze jednou a použít speciální univerzální načítač, který přizpůsobí načítaný program aktuálnímu jádru a typům BTF (BPF Type Format). BumbleBee je nadstavbou nad libbpf a poskytuje další typy pro automatickou interpretaci a zobrazení dat uložených v běžných eBPF map-strukturách RingBuffer a HashMap.

Pro sestavení konečného eBPF programu a jeho uložení jako OCI obrazu stačí provést příkaz „bee build soubor_s_kódem jméno:verze“, a pro spuštění příkaz „bee run jméno:verze“. Standardně budou získané události ze zpracovatele vyvedeny do okna terminálu, ale v případě potřeby lze data získat pomocí nástrojů curl nebo wget na připojený síťový port. Zpracovatele lze distribuovat prostřednictvím OCI-kompatibilních repozitářů, například pro spuštění externího zpracovatele z repozitáře ghcr.io (GitHub Container Registry) lze provést příkaz „bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)“. Pro umístění zpracovatele do repozitáře doporučujeme příkaz „bee push“, a pro označení verze – „bee tag“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster