BumbleBee - ilaro por simpligi la kreadon kaj distribuadon de eBPF-programoj

Solo.io, firmao kiu disvolvas produktojn por funkciigado de nubaj sistemoj, mikroservoj, izolitaj ujoj kaj senservila komputado, publikigis BumbleBee, malfermfontan ilaron celitan simpligi la preparadon, distribuon kaj lanĉon de eBPF-programoj kiuj funkcias en speciala virtuala maŝino ene. la Linukso-kerno kaj permesas prilabori retajn operaciojn, kontroli aliron kaj monitori sistemojn. La kodo estas skribita en Go kaj distribuita sub la licenco Apache 2.0.

BumbleBee ebligas paki eBPF-programon kiel ujo-bildon en la formato OCI (Open Container Initiative), kiu povas esti rulita en iu ajn sistemo sen rekompilo kaj la uzo de pliaj komponantoj en uzantspaco. Interago kun la eBPF-kodo en la kerno, inkluzive de prilaborado de datumoj venantaj de la eBPF-traktilo, estas transprenita de BumbleBee, kiu aŭtomate eksportas ĉi tiujn datumojn en la formo de metrikoj, histogramoj aŭ protokoloj, kiuj povas esti aliritaj, ekzemple, uzante la bukla utileco. La proponita aliro permesas al la programisto koncentriĝi pri skribado de eBPF-kodo kaj ne esti distrita per organizado de interago kun ĉi tiu kodo de uzantspaco, kunigo kaj ŝarĝo en la kernon.

Por administri eBPF-programojn, estas ofertita Docker-stila "abelo" ilo, per kiu vi povas tuj elŝuti la interesan pritraktilon eBPF de ekstera deponejo kaj ruli ĝin sur la loka sistemo. La ilaro ebligas al vi generi kodkadron en C por eBPF-prizorgantoj de elektita temo (nuntempe nur pritraktiloj por retaj kaj dosieroperacioj kiuj kaptas vokojn al la retstako kaj dosiersistemoj estas subtenataj). Surbaze de la generita kadro, la programisto povas rapide efektivigi la funkciojn pri kiuj li interesiĝas.

Male al BCC (BPF Compiler Collection), BumbleBee ne tute rekonstruas la prizorgan kodon por ĉiu versio de la Linukso-kerno (BCC uzas surla-muŝan kompilon uzante Clang ĉiufoje kiam la programo eBPF estas lanĉita). Por solvi problemojn pri porteblo, la iloj CO-RE kaj libbpf estas evoluigitaj, permesante al vi konstrui kodon nur unufoje kaj uzi specialan universalan ŝargilon, kiu adaptas la ŝarĝitan programon al la nuna kerno kaj BTF-Tipa Formato. BumbleBee estas aldonaĵo al libbpf kaj disponigas kromajn tipojn por aŭtomata interpreto kaj montrado de datumoj situantaj en la normaj eBPF-mapaj strukturoj RingBuffer kaj HashMap.

Por konstrui la finan eBPF-programon kaj konservi ĝin kiel OCI-bildon, simple rulu la komandon "bee build file_with_code name:version", kaj rulu la komandon "bee run name:version". Defaŭlte, eventoj ricevitaj de la prizorganto estos eligitaj al la fina fenestro, sed se necese, vi povas akiri datumojn per uzado de curl aŭ wget-utiloj al la rethaveno ligita al la prizorganto. Pritraktiloj povas esti distribuitaj per OCI-kongruaj deponejoj, ekzemple, por funkciigi eksteran prizorganton de la deponejo ghcr.io (GitHub Container Registry), vi povas ruli la komandon "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(abelversio)”. Por meti pritraktilon en la deponejon, la komando "bee push" estas proponita, kaj por ligi version, "bee-etikedo".

fonto: opennet.ru

Aldoni komenton