BumbleBee - rīku komplekts, lai vienkāršotu eBPF programmu izveidi un izplatīšanu

Uzņēmums Solo.io, kas izstrādā produktus mākoņsistēmu darbināšanai, mikropakalpojumiem, izolētiem konteineriem un bezserveru skaitļošanai, ir publicējis BumbleBee — atvērtā pirmkoda rīku komplektu, kura mērķis ir vienkāršot eBPF programmu sagatavošanu, izplatīšanu un palaišanu, kas darbojas īpašā virtuālajā mašīnā. Linux kodolu un ļauj apstrādāt tīkla darbības, kontrolēt piekļuvi un pārraudzīt sistēmas. Kods ir rakstīts programmā Go un izplatīts saskaņā ar Apache 2.0 licenci.

BumbleBee dod iespēju iepakot eBPF programmu kā konteinera attēlu OCI (Open Container Initiative) formātā, kuru var palaist jebkurā sistēmā bez pārkompilācijas un papildu komponentu izmantošanas lietotāja telpā. Mijiedarbību ar eBPF kodu kodolā, tostarp no eBPF apstrādātāja saņemto datu apstrādi, pārņem BumbleBee, kas automātiski eksportē šos datus metrikas, histogrammu vai žurnālu veidā, kuriem var piekļūt, piemēram, izmantojot čokurošanās lietderība. Piedāvātā pieeja ļauj izstrādātājam koncentrēties uz eBPF koda rakstīšanu un nenovirzīt uzmanību, organizējot mijiedarbību ar šo kodu no lietotāja vietas, montāžas un ielādes kodolā.

Lai pārvaldītu eBPF programmas, tiek piedāvāta Docker stila “bee” utilīta, ar kuru jūs varat nekavējoties lejupielādēt interesējošo eBPF apdarinātāju no ārējā repozitorija un palaist to vietējā sistēmā. Rīku komplekts ļauj ģenerēt koda ietvaru C valodā atlasītās tēmas eBPF apdarinātājiem (šobrīd tiek atbalstīti tikai tie tīkla un failu operāciju apdarinātāji, kas pārtver zvanus uz tīkla steku un failu sistēmām). Pamatojoties uz ģenerēto ietvaru, izstrādātājs var ātri ieviest sev interesējošo funkcionalitāti.

Atšķirībā no BCC (BPF kompilatoru kolekcijas), BumbleBee pilnībā nepārbūvē katras Linux kodola versijas apdarinātāja kodu (BCC izmanto lidojuma laikā veikto kompilāciju, izmantojot Clang katru reizi, kad tiek palaista eBPF programma). Lai atrisinātu problēmas ar pārnesamību, tiek izstrādāti CO-RE un libbpf rīki, kas ļauj izveidot kodu tikai vienu reizi un izmantot īpašu universālu ielādētāju, kas pielāgo ielādēto programmu pašreizējam kodolam un BTF tipa formātam. BumbleBee ir libbpf papildinājums un nodrošina papildu veidus automātiskai datu interpretācijai un attēlošanai, kas atrodas standarta eBPF karšu struktūrās RingBuffer un HashMap.

Lai izveidotu galīgo eBPF programmu un saglabātu to kā OCI attēlu, vienkārši palaidiet komandu “bee build file_with_code name:version” un palaidiet komandu “bee run name:version”. Pēc noklusējuma no apdarinātāja saņemtie notikumi tiks izvadīti termināļa logā, taču, ja nepieciešams, varat iegūt datus, izmantojot curl vai wget utilītas tīkla portam, kas saistīts ar apdarinātāju. Apdarinātājus var izplatīt, izmantojot ar OCI saderīgus repozitorijus, piemēram, lai palaistu ārēju apdarinātāju no ghcr.io krātuves (GitHub Container Registry), varat palaist komandu “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bišu versija)”. Lai krātuvē ievietotu apstrādātāju, tiek piedāvāta komanda “bee push” un, lai saistītu versiju, “bee tag”.

Avots: opennet.ru

Pievieno komentāru