BumbleBee - zana ya kurahisisha uundaji na usambazaji wa programu za eBPF

Solo.io, kampuni inayotengeneza bidhaa za kuendesha mifumo ya wingu, huduma ndogo, kontena zilizotengwa na kompyuta isiyo na seva, imechapisha BumbleBee, zana huria ya zana inayolenga kurahisisha utayarishaji, usambazaji na uzinduzi wa programu za eBPF ambazo huendeshwa kwa mashine maalum ndani. Linux kernel na kuruhusu usindikaji wa shughuli za mtandao, kudhibiti ufikiaji na kufuatilia mifumo. Nambari hiyo imeandikwa kwa Go na kusambazwa chini ya leseni ya Apache 2.0.

BumbleBee huwezesha kufunga programu ya eBPF kama taswira ya kontena katika umbizo la OCI (Open Container Initiative), ambalo linaweza kuendeshwa kwenye mfumo wowote bila urejeshaji na matumizi ya vipengee vya ziada katika nafasi ya mtumiaji. Mwingiliano na msimbo wa eBPF katika msingi, ikiwa ni pamoja na usindikaji wa data kutoka kwa kidhibiti cha eBPF, unachukuliwa na BumbleBee, ambayo husafirisha data hii kiotomatiki katika mfumo wa vipimo, historia au kumbukumbu, ambazo zinaweza kufikiwa, kwa mfano, kwa kutumia matumizi ya curl. Mbinu iliyopendekezwa huruhusu msanidi programu kuzingatia kuandika msimbo wa eBPF na kutokengeushwa na kupanga mwingiliano na msimbo huu kutoka kwa nafasi ya mtumiaji, kuunganisha na kupakia kwenye kernel.

Ili kudhibiti programu za eBPF, matumizi ya "nyuki" ya mtindo wa Docker hutolewa, ambayo unaweza kupakua kidhibiti cha eBPF mara moja kutoka kwa hazina ya nje na kuiendesha kwenye mfumo wa ndani. Zana ya zana hukuruhusu kutoa mfumo wa msimbo katika C kwa vidhibiti vya eBPF vya mada iliyochaguliwa (kwa sasa ni vidhibiti pekee vya utendakazi wa mtandao na faili ambavyo vinakatiza simu kwa rundo la mtandao na mifumo ya faili inatumika). Kulingana na mfumo uliotengenezwa, msanidi programu anaweza kutekeleza haraka utendakazi anaopenda.

Tofauti na BCC (Mkusanyiko wa Mkusanyaji wa BPF), BumbleBee haitengenezi upya msimbo wa kidhibiti kwa kila toleo la kinu cha Linux (BCC hutumia mkusanyiko wa on-the-fly kwa kutumia Clang kila wakati programu ya eBPF inapozinduliwa). Ili kutatua matatizo ya kubebeka, zana za CO-RE na libbpf zinatengenezwa, huku kuruhusu kuunda msimbo mara moja tu na kutumia kipakiaji maalum cha ulimwengu wote ambacho hubadilisha programu iliyopakiwa kwa kernel ya sasa na Umbizo la Aina ya BTF. BumbleBee ni programu jalizi kwa libbpf na hutoa aina za ziada kwa tafsiri otomatiki na onyesho la data iliyo katika miundo ya ramani ya kawaida ya eBPF RingBuffer na HashMap.

Ili kuunda programu ya mwisho ya eBPF na kuihifadhi kama picha ya OCI, endesha tu amri "bee build file_with_code name:version", na utekeleze amri "bee run name:version". Kwa chaguo-msingi, matukio yaliyopokelewa kutoka kwa kidhibiti yatatolewa kwa kidirisha cha terminal, lakini ikihitajika, unaweza kupata data kwa kutumia huduma za curl au wget kwenye mlango wa mtandao unaofungamana na kidhibiti. Vishikizi vinaweza kusambazwa kupitia hazina zinazooana na OCI, kwa mfano, ili kuendesha kidhibiti cha nje kutoka hazina ya ghcr.io (Usajili wa Vyombo vya GitHub), unaweza kuendesha amri "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(toleo la nyuki)”. Ili kuweka kidhibiti kwenye hifadhi, amri ya "kusukuma nyuki" inapendekezwa, na kufunga toleo, "tag ya nyuki".

Chanzo: opennet.ru

Kuongeza maoni