BumbleBee - työkalupakki eBPF-ohjelmien luomisen ja jakelun yksinkertaistamiseksi

Solo.io, yritys, joka kehittää tuotteita pilvijärjestelmien, mikropalvelujen, eristettyjen säiliöiden ja palvelimettomaan tietojenkäsittelyyn, on julkaissut BumbleBeen, avoimen lähdekoodin työkalupakin, jonka tarkoituksena on yksinkertaistaa eBPF-ohjelmien valmistelua, jakelua ja käynnistämistä erityisessä virtuaalikoneessa. Linux-ydin ja mahdollistaa verkkotoimintojen käsittelyn, valvoa pääsyä ja valvoa järjestelmiä. Koodi on kirjoitettu Go-kielellä ja jaettu Apache 2.0 -lisenssillä.

BumbleBee mahdollistaa eBPF-ohjelman paketoinnin konttikuvaksi OCI (Open Container Initiative) -muotoon, jota voidaan ajaa missä tahansa järjestelmässä ilman uudelleenkääntämistä ja lisäkomponenttien käyttöä käyttäjätilassa. Vuorovaikutus ytimen eBPF-koodin kanssa, mukaan lukien eBPF-käsittelijältä tulevien tietojen käsittely, ottaa hoitaakseen BumbleBee, joka vie nämä tiedot automaattisesti mittareiksi, histogrammeiksi tai lokeiksi, joihin pääsee esimerkiksi käyttämällä curl-apuohjelma. Ehdotetun lähestymistavan avulla kehittäjä voi keskittyä eBPF-koodin kirjoittamiseen, eikä häntä häiritse järjestämällä vuorovaikutusta tämän koodin kanssa käyttäjätilasta, kokoonpanosta ja ytimeen lataamisesta.

eBPF-ohjelmien hallintaan tarjotaan Docker-tyylinen "bee"-apuohjelma, jolla voit välittömästi ladata kiinnostavan eBPF-käsittelijän ulkoisesta arkistosta ja ajaa sen paikallisessa järjestelmässä. Työkalupakin avulla voit luoda C-kielellä koodikehyksen valitun aiheen eBPF-käsittelijöille (tällä hetkellä tuetaan vain verkko- ja tiedostotoimintojen käsittelijöitä, jotka sieppaavat kutsuja verkkopinoon ja tiedostojärjestelmiin). Luodun kehyksen perusteella kehittäjä voi nopeasti toteuttaa häntä kiinnostavan toiminnon.

Toisin kuin BCC (BPF Compiler Collection), BumbleBee ei kokoa täysin uudelleen käsittelijäkoodia jokaiselle Linux-ytimen versiolle (BCC käyttää lennossa käännöstä käyttäen Clangia joka kerta, kun eBPF-ohjelma käynnistetään). Siirrettävyyden ongelmien ratkaisemiseksi kehitetään CO-RE- ja libbpf-työkaluja, joiden avulla voit rakentaa koodia vain kerran ja käyttää erityistä yleistä latausohjelmaa, joka mukauttaa ladatun ohjelman nykyiseen ytimeen ja BTF-tyyppimuotoon. BumbleBee on libbpf-lisäosa ja tarjoaa lisätyyppejä tietojen automaattiseen tulkintaan ja näyttöön, jotka sijaitsevat vakiomuotoisissa eBPF-karttarakenteissa RingBuffer ja HashMap.

Luodaksesi lopullisen eBPF-ohjelman ja tallentaaksesi sen OCI-kuvana, suorita komento "bee build file_with_code name:version" ja komento "bee run name:version". Käsittelijältä vastaanotetut tapahtumat tulostetaan oletusarvoisesti pääteikkunaan, mutta tarvittaessa voit hankkia tietoja curl- tai wget-apuohjelmilla käsittelijään sidottuun verkkoporttiin. Käsittelijät voidaan jakaa OCI-yhteensopivien tietovarastojen kautta, esimerkiksi ulkoisen käsittelijän suorittamiseksi ghcr.io-arkistosta (GitHub Container Registry), voit suorittaa komennon "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(mehiläinen versio)”. Käsittelijän sijoittamiseksi arkistoon ehdotetaan "bee push" -komentoa ja version sitomiseksi "bee tag".

Lähde: opennet.ru

Lisää kommentti