BumbleBee - egy eszközkészlet az eBPF programok létrehozásának és terjesztésének egyszerűsítésére

A felhőrendszerekhez, mikroszolgáltatásokhoz, izolált konténerekhez és szerver nélküli számítástechnikához termékeket fejlesztő Solo.io közzétette a nyílt forráskódú BumbleBee eszközkészletet, amelynek célja a kernelen belüli speciális virtuális gépen futó eBPF programok előkészítésének, terjesztésének és végrehajtásának egyszerűsítése. Linux és lehetővé teszi a hálózati műveletek feldolgozását, a hozzáférés-vezérlést és a rendszerfelügyeletet. A kód Go nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre.

A BumbleBee lehetővé teszi egy eBPF program OCI (Open Container Initiative) konténerképként való csomagolását, amely bármilyen rendszeren futtatható újrafordítás vagy további felhasználói térbeli komponensek nélkül. A kernelben lévő eBPF kóddal való interakciót, beleértve az eBPF kezelőből származó adatok feldolgozását is, a BumbleBee kezeli, amely automatikusan exportálja ezeket az adatokat metrikák, hisztogramok vagy naplók formájában, amelyek például a curl segédprogrammal érhetők el. Ez a megközelítés lehetővé teszi a fejlesztő számára, hogy az eBPF kód írására koncentráljon, és ne vonja el a figyelmét a kód felhasználói térből történő kezelése, fordítása és a kernelbe való betöltése.

Az eBPF programok kezeléséhez egy Docker-stílusú, "bee" nevű segédprogram áll rendelkezésre. Ez lehetővé teszi a kívánt eBPF kezelő azonnali letöltését egy külső adattárból, és a helyi rendszeren való futtatását. Az eszközkészlet lehetővé teszi egy adott témában az eBPF kezelők C kódvázának létrehozását (jelenleg csak a hálózati és fájlműveleti kezelők támogatottak, amelyek elfogják a hálózati verem- és fájlrendszerhívásokat). Ezzel a vázzal a fejlesztő gyorsan megvalósíthatja a kívánt funkciókat.

A BCC-vel (BPF Compiler Collection) ellentétben a BumbleBee nem hajtja végre a kezelőkód teljes újraépítését minden egyes kernel verzióhoz. Linux (A BCC minden alkalommal, amikor egy eBPF program fut, menet közbeni fordítást használ a Clang-gal.) A hordozhatósági problémák megoldására a CO-RE és a libbpf eszközkészleteket fejlesztik, amelyek lehetővé teszik a kód egyszeri fordítását, és egy speciális univerzális betöltőt használnak, amely a betöltött programot az aktuális kernelhez és a BTF (BPF Type Format) típusokhoz igazítja. A BumbleBee egy libbpf kiegészítő, és további típusokat biztosít a szabványos eBPF leképezési struktúrákban, a RingBufferben és a HashMapben tárolt adatok automatikus értelmezéséhez és megjelenítéséhez.

A végleges eBPF program felépítéséhez és OCI képfájlként való mentéséhez egyszerűen futtassa a "bee build code_file name:version" és a "bee run name:version" parancsokat. Alapértelmezés szerint a kezelőtől kapott események a terminálablakba kerülnek kimenetre, de az adatokat a curl vagy a wget használatával kérheti le a kezelőhöz kötött hálózati porton keresztül. A kezelők OCI-kompatibilis tárolókon keresztül terjeszthetők. Például egy külső kezelő futtatásához a ghcr.io tárolóból (GitHub Container Registry) futtathatja a "bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)" parancsot. A kezelő tárolóba küldéséhez használja a "bee push" parancsot, a verzió címkézéséhez pedig a "bee tag" parancsot.

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster