BumbleBee – įrankių rinkinys, skirtas supaprastinti eBPF programų kūrimą ir platinimą

Solo.io, įmonė, kurianti produktus debesų sistemoms, mikropaslaugoms, izoliuotiems konteineriams ir kompiuteriams be serverių, išleido „BumbleBee“ – atvirojo kodo įrankių rinkinį, skirtą supaprastinti eBPF programų, veikiančių specialioje virtualioje mašinoje, paruošimą, platinimą ir paleidimą. Linux branduolį ir leisti apdoroti tinklo operacijas, valdyti prieigą ir stebėti sistemas. Kodas parašytas Go ir platinamas pagal Apache 2.0 licenciją.

BumbleBee suteikia galimybę supakuoti eBPF programą kaip konteinerio vaizdą OCI (Open Container Initiative) formatu, kuris gali būti paleistas bet kurioje sistemoje be perkompiliavimo ir papildomų komponentų naudojimo vartotojo erdvėje. Sąveiką su eBPF kodu branduolyje, įskaitant iš eBPF tvarkyklės gaunamų duomenų apdorojimą, perima „BumbleBee“, kuri automatiškai eksportuoja šiuos duomenis metrikos, histogramų ar žurnalų pavidalu, kuriuos galima pasiekti, pavyzdžiui, naudojant garbanos naudingumas. Siūlomas metodas leidžia kūrėjui sutelkti dėmesį į eBPF kodo rašymą ir nesiblaškyti organizuojant sąveiką su šiuo kodu iš vartotojo erdvės, surinkimo ir įkėlimo į branduolį.

eBPF programoms valdyti siūloma Docker stiliaus „bičių“ programa, su kuria iš išorinės saugyklos galite iš karto atsisiųsti dominančią eBPF tvarkyklę ir paleisti ją vietinėje sistemoje. Įrankių rinkinys leidžia sugeneruoti kodo sistemą C kalboje pasirinktos temos eBPF tvarkytojams (šiuo metu palaikomos tik tinklo ir failų operacijų tvarkyklės, kurios perima iškvietimus į tinklo krūvą ir failų sistemas). Remdamasis sugeneruota sistema, kūrėjas gali greitai įdiegti jį dominančią funkciją.

Skirtingai nei BCC (BPF kompiliatorių kolekcija), „BumbleBee“ visiškai neatkuria kiekvienos „Linux“ branduolio versijos tvarkyklės kodo (BCC naudoja tiesioginį kompiliavimą naudojant „Clang“ kiekvieną kartą, kai paleidžiama „eBPF“ programa). Siekiant išspręsti perkeliamumo problemas, kuriami CO-RE ir libbpf įrankiai, leidžiantys sukurti kodą tik vieną kartą ir naudoti specialų universalų įkroviklį, kuris pritaiko įkeliamą programą prie esamo branduolio ir BTF tipo formato. „BumbleBee“ yra „libbpf“ priedas ir suteikia papildomų tipų duomenų, esančių standartinėse eBPF žemėlapių struktūrose „RingBuffer“ ir „HashMap“, automatiniam interpretavimui ir atvaizdavimui.

Norėdami sukurti galutinę eBPF programą ir išsaugoti ją kaip OCI vaizdą, tiesiog paleiskite komandą „bee build file_with_code name:version“ ir paleiskite komandą „bee run name:version“. Pagal numatytuosius nustatymus iš tvarkyklės gauti įvykiai bus išvedami į terminalo langą, tačiau, jei reikia, duomenis galite gauti naudodami curl arba wget įrankius į tinklo prievadą, susietą su tvarkykle. Valdiklius galima platinti per su OCI suderinamas saugyklas, pavyzdžiui, norint paleisti išorinę tvarkyklę iš ghcr.io saugyklos („GitHub Container Registry“), galite paleisti komandą „bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bičių versija)“. Norėdami patalpinti tvarkyklę į saugyklą, siūloma komanda „bee push“, o norint susieti versiją – „bee tag“.

Šaltinis: opennet.ru

Добавить комментарий