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

A Solo.io, a felhőrendszerek futtatásához, mikroszolgáltatásokhoz, izolált konténerekhez és szerver nélküli számítástechnikához termékeket fejlesztő cég közzétette a BumbleBee nyílt forráskódú eszközkészletet, amelynek célja az eBPF programok előkészítésének, terjesztésének és elindításának egyszerűsítése, amelyek egy speciális virtuális gépben futnak. a Linux kernel, és lehetővé teszi a hálózati műveletek feldolgozását, a hozzáférés szabályozását és a rendszerek felügyeletét. A kód Go nyelven íródott, és az Apache 2.0 licenc alatt terjeszthető.

A BumbleBee lehetővé teszi egy eBPF program OCI (Open Container Initiative) formátumú konténerképként történő csomagolását, amely bármilyen rendszeren futtatható újrafordítás és további komponensek felhasználói térben történő használata nélkül. A magban lévő eBPF kóddal való interakciót, beleértve az eBPF kezelőtől származó adatok feldolgozását, a BumbleBee veszi át, amely automatikusan exportálja ezeket az adatokat metrikák, hisztogramok vagy naplók formájában, amelyek például a curl segédprogram. A javasolt megközelítés lehetővé teszi a fejlesztő számára, hogy az eBPF kód írására összpontosítson, és ne terelje el figyelmét a kóddal való interakció megszervezése a felhasználói területről, az összeállítástól és a kernelbe való betöltéstől.

Az eBPF programok kezeléséhez egy Docker-stílusú „bee” segédprogramot kínálnak, mellyel azonnal letölthető az érdeklődésre számot tartó eBPF kezelő egy külső tárolóból, és futtatható a helyi rendszeren. Az eszközkészlet lehetővé teszi kódkeret létrehozását C nyelven egy kiválasztott témakör eBPF-kezelői számára (jelenleg csak a hálózati és fájlműveletekhez tartozó kezelők támogatottak, amelyek elfogják a hálózati verem és fájlrendszerek hívását). A generált keretrendszer alapján a fejlesztő gyorsan megvalósíthatja az őt érdeklő funkcionalitást.

Ellentétben a BCC-vel (BPF Compiler Collection), a BumbleBee nem építi teljesen újra a kezelőkódot a Linux kernel egyes verzióihoz (a BCC az eBPF program minden egyes indításakor a Clang segítségével történő menet közbeni fordítást használ). A hordozhatóság problémáinak megoldására a CO-RE és a libbpf eszközök fejlesztés alatt állnak, amelyek lehetővé teszik a kód egyszeri összeállítását és egy speciális univerzális betöltő használatát, amely a betöltött programot az aktuális kernelhez és BTF típusformátumhoz igazítja. A BumbleBee a libbpf kiegészítője, és további típusokat biztosít a szabványos eBPF RingBuffer és HashMap térképstruktúrákban található adatok automatikus értelmezéséhez és megjelenítéséhez.

A végső eBPF program elkészítéséhez és OCI-képként mentéséhez futtassa a „bee build file_with_code name:version” parancsot, majd a „bee run name:version” parancsot. Alapértelmezés szerint a kezelőtől kapott események a terminálablakba kerülnek, de ha szükséges, a curl vagy a wget segédprogramokkal adatokat szerezhet a kezelőhöz kötött hálózati portra. 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), futtassa a „bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(méh változat)”. A kezelő elhelyezéséhez a tárolóban a „bee push” parancsot javasoljuk, egy verzió kötéséhez pedig a „bee tag”.

Forrás: opennet.ru

Hozzászólás