BumbleBee - eBPF programen sorrera eta banaketa errazteko tresna-kit bat

Solo.io-k, hodeiko sistemak, mikrozerbitzuak, edukiontzi isolatuak eta zerbitzaririk gabeko informatika exekutatzeko produktuak garatzen dituen konpainiak, BumbleBee argitaratu du, barnean makina birtual berezi batean exekutatzen diren eBPF programak prestatzea, banatzea eta abian jartzea errazteko xedea duen kode irekiko tresna. Linux nukleoa eta sareko eragiketak prozesatzeko, sarbidea kontrolatzeko eta sistemak kontrolatzeko aukera ematen dute. Kodea Go-n idatzita dago eta Apache 2.0 lizentziapean banatzen da.

BumbleBee-k eBPF programa bat edukiontzi-irudi gisa paketatzea ahalbidetzen du OCI (Open Container Initiative) formatuan, edozein sistematan exekutatu daitekeena birkonpilatu gabe eta erabiltzailearen espazioan osagai gehigarririk erabili gabe. Nukleoko eBPF kodearekin elkarreragina, eBPF kudeatzailetik datozen datuen prozesamendua barne, BumbleBee-k hartzen du bere gain, eta datu horiek automatikoki esportatzen ditu neurgailu, histograma edo erregistro moduan, eta atzitu daiteke, adibidez, erabiliz. kizkur erabilgarritasuna. Proposatutako ikuspegiari esker, garatzaileari eBPF kodea idazten zentratu eta kode honekin interakzioa erabiltzailearen espaziotik, muntaiatik eta nukleoan kargatuz antolatzeko aukera ematen du.

eBPF programak kudeatzeko, Docker estiloko "erlea" erabilgarritasun bat eskaintzen da, eta horrekin berehala deskargatu dezakezu interesgarri den eBPF kudeatzailea kanpoko biltegitik eta tokiko sisteman exekutatu. Tresna-kudeatzaileak aukeratutako gai baten eBPF kudeatzaileentzako C-n kode-esparru bat sortzeko aukera ematen du (gaur egun sareko pilara eta fitxategi-sistemetara deiak atzematen dituzten sare eta fitxategi-eragiketetarako kudeatzaileak soilik onartzen dira). Sortutako esparruan oinarrituta, garatzaileak interesatzen zaizkion funtzionalitateak azkar ezar ditzake.

BCC (BPF Compiler Collection) ez bezala, BumbleBee-k ez du Linux nukleoaren bertsio bakoitzaren kudeatzaile-kodea guztiz berreraikitzen (BCC-k berehalako konpilazioa erabiltzen du Clang erabiliz eBPF programa abiarazten den bakoitzean). Eramangarritasun arazoak konpontzeko, CO-RE eta libbpf tresnak garatzen ari dira, kodea behin bakarrik eraikitzeko eta kargatutako programa uneko kernelera eta BTF Mota Formatura egokitzen duen kargatzaile unibertsal berezi bat erabiltzea ahalbidetuz. BumbleBee libbpf-ren gehigarri bat da eta RingBuffer eta HashMap eBPF mapa-egituretan kokatutako datuen interpretazio automatikorako eta bistaratzeko mota osagarriak eskaintzen ditu.

Azken eBPF programa eraikitzeko eta OCI irudi gisa gordetzeko, exekutatu komandoa "bee build file_with_code name:version" eta "bee run name:version" komandoa exekutatu. Lehenespenez, kudeatzailetik jasotako gertaerak terminaleko leihora aterako dira, baina behar izanez gero, datuak lor ditzakezu kudeatzaileari lotutako sareko atakan curl edo wget utilitateak erabiliz. Kudeatzaileak OCI-rekin bateragarriak diren biltegien bidez banatu daitezke, adibidez, ghcr.io biltegitik kanpoko kudeatzaile bat exekutatzeko (GitHub Container Registry), "bee run ghcr.io/solo-io/bumblebee/tcpconnect" komandoa exekutatu dezakezu: $(erleen bertsioa)”. Biltegian kudeatzaile bat jartzeko, "erle push" komandoa proposatzen da, eta bertsio bat lotzeko, "erle etiketa".

Iturria: opennet.ru

Gehitu iruzkin berria