I-BumbleBee - isixhobo sokwenza lula ukuyilwa kunye nokuhanjiswa kweenkqubo ze-eBPF

I-Solo.io, inkampani ephuhlisa iimveliso zokuqhuba iinkqubo zamafu, ii-microservices, izitya ezizimeleyo kunye ne-serverless computing, ipapashe i-BumbleBee, i-Toolkit evulekile yomthombo ojoliswe ekwenzeni lula ukulungiswa, ukuhanjiswa kunye nokuqaliswa kweenkqubo ze-eBPF ezisebenza kumatshini okhethekileyo ngaphakathi. i-Linux kernel kwaye uvumele ukusetyenzwa komsebenzi womnatha, ukulawula ukufikelela kunye nokubeka iliso kwiinkqubo. Ikhowudi ibhalwe kwi-Go kwaye isasazwe phantsi kwelayisensi ye-Apache 2.0.

I-BumbleBee yenza kube lula ukupakisha inkqubo ye-eBPF njengomfanekiso wesikhongozeli kwifomathi ye-OCI (Open Container Initiative), enokuthi iqhutywe kuyo nayiphi na inkqubo ngaphandle kokubuyisela kunye nokusetyenziswa kwamacandelo awongezelelweyo kwindawo yomsebenzisi. Ukusebenzisana nekhowudi ye-eBPF engundoqo, kubandakanywa ukusetyenzwa kwedatha evela kumphathi we-eBPF, ithathwa yiBumbleBee, ethumela ngaphandle le datha ngokuzenzekelayo ngendlela yeemetrics, histograms okanye logs, ezinokufikelelwa, umzekelo, usebenzisa i-curl eluncedo. Indlela ecetywayo ivumela umphuhlisi ukuba agxininise ekubhaleni ikhowudi ye-eBPF kwaye angaphazanyiswa ngokuququzelela ukusebenzisana nale khowudi kwindawo yomsebenzisi, ukudibanisa kunye nokulayisha kwi-kernel.

Ukulawula iinkqubo ze-eBPF, i-Docker-style "bee" utility inikezelwa, apho unokukhuphela ngokukhawuleza umphathi we-eBPF womdla kwindawo yokugcina yangaphandle kwaye uyiqhube kwinkqubo yendawo. I-toolkit ikuvumela ukuba uvelise isakhelo sekhowudi kwi-C kubaphathi be-eBPF besihloko esikhethiweyo (okwangoku kuphela abaphathi bomsebenzi womnatha kunye neefayile ezithintela iifowuni kwi-stack yenethiwekhi kunye neenkqubo zefayile zixhaswa). Ngokusekelwe kwisakhelo esiveliswayo, umphuhlisi unokukhawuleza ukuphumeza umsebenzi anomdla kuwo.

Ngokungafaniyo ne-BCC (i-BPF Compiler Collection), i-BumbleBee ayakhi ngokupheleleyo ikhowudi yomphathi kuguqulelo ngalunye lwe-Linux kernel (i-BCC isebenzisa ukuhlanganiswa kwe-fly kusetyenziswa i-Clang ngalo lonke ixesha inkqubo ye-eBPF iqaliswa). Ukucombulula iingxaki ngokuphatheka, izixhobo ze-CO-RE kunye ne-libbpf ziyaphuhliswa, kukuvumela ukuba wakhe ikhowudi kanye kuphela kwaye usebenzise umlayishi okhethekileyo wendalo yonke olungelelanisa inkqubo elayishiweyo kwi-kernel yangoku kunye ne-BTF Type Format. I-BumbleBee isongezo kwi-libbpf kwaye ibonelela ngeentlobo ezongezelelweyo zokutolika ngokuzenzekelayo kunye nokuboniswa kwedatha ebekwe kwi-eBPF yezakhiwo zeemephu ze-RingBuffer kunye ne-HashMap.

Ukwakha inkqubo yokugqibela ye-eBPF kwaye uyigcine njengomfanekiso we-OCI, sebenzisa nje umyalelo othi "bee build file_with_code name: version", kwaye usebenzise umyalelo othi "bee run name: version". Ngokungagqibekanga, iziganeko ezifunyenwe kumphathi ziya kuba yimveliso kwifestile yesiphelo, kodwa ukuba kuyimfuneko, ungafumana idatha ngokusebenzisa i-curl okanye i-wget eziluncedo kwizibuko lothungelwano elibotshelelwe kumphathi. Iziphatho zingasasazwa ngeendawo zokugcina ezihambelana ne-OCI, umzekelo, ukuqhuba isibambi sangaphandle kwindawo yokugcina i-ghcr.io (iRegistry yeSikhongozeli seGitHub), unokuqhuba umyalelo othi “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(uguqulelo lwenyosi)”. Ukubeka isibambi kwindawo yokugcina, umyalelo othi "bee push" ucetywayo, kwaye ubophe inguqu, "ithegi yeenyosi".

umthombo: opennet.ru

Yongeza izimvo