BumbleBee - eBPF бағдарламаларын құруды және таратуды жеңілдетуге арналған құралдар жинағы

Solo.io, бұлтты жүйелерді, микросервистерді, оқшауланған контейнерлерді және серверсіз есептеулерді іске қосуға арналған өнімдерді әзірлейтін компания ішіндегі арнайы виртуалды машинада жұмыс істейтін eBPF бағдарламаларын дайындауды, таратуды және іске қосуды жеңілдетуге бағытталған BumbleBee ашық бастапқы құрал жинағын шығарды. Linux ядросы және желілік операцияларды өңдеуге, қол жеткізуді басқару және бақылау жүйелеріне мүмкіндік береді. Код Go бағдарламасында жазылған және Apache 2.0 лицензиясы бойынша таратылады.

BumbleBee eBPF бағдарламасын OCI (Open Container Initiative) пішіміндегі контейнер кескіні ретінде пакеттеуге мүмкіндік береді, оны кез келген жүйеде қайта құрастырусыз және пайдаланушы кеңістігінде қосымша құрамдастарды пайдаланбай іске қосуға болады. Негізгі eBPF кодымен өзара әрекеттесу, оның ішінде eBPF өңдеушісінен келетін деректерді өңдеуді BumbleBee қабылдайды, ол бұл деректерді метрикалар, гистограммалар немесе журналдар түрінде автоматты түрде экспорттайды, мысалы, кіруге болады. curl утилитасы. Ұсынылған тәсіл әзірлеушіге eBPF кодын жазуға назар аударуға және пайдаланушы кеңістігінен осы кодпен өзара әрекеттесу, жинақтау және ядроға жүктеуді ұйымдастыру арқылы алаңдамауға мүмкіндік береді.

eBPF бағдарламаларын басқару үшін Docker стиліндегі «ара» утилитасы ұсынылады, оның көмегімен қызықты eBPF өңдеушісін сыртқы репозиторийден дереу жүктеп алуға және оны жергілікті жүйеде іске қосуға болады. Құралдар жинағы таңдалған тақырыптың eBPF өңдеушілері үшін C тілінде код құрылымын жасауға мүмкіндік береді (қазіргі уақытта тек желілік стек пен файлдық жүйелерге қоңырауларды тоқтататын желілік және файлдық операцияларға арналған өңдеушілерге ғана қолдау көрсетіледі). Жасалған негізге сүйене отырып, әзірлеуші ​​өзін қызықтыратын функционалдылықты жылдам жүзеге асыра алады.

BCC (BPF Compiler Collection) айырмашылығы, BumbleBee Linux ядросының әрбір нұсқасы үшін өңдеуші кодын толығымен қайта жасамайды (BCC eBPF бағдарламасы іске қосылған сайын Clang көмегімен жедел компиляцияны пайдаланады). Тасымалдауға қатысты мәселелерді шешу үшін кодты бір рет құруға және жүктелген бағдарламаны ағымдағы ядроға және BTF типті пішіміне бейімдейтін арнайы әмбебап жүктеушіні пайдалануға мүмкіндік беретін CO-RE және libbpf құралдары әзірленуде. BumbleBee libbpf қосымшасы болып табылады және RingBuffer және HashMap стандартты eBPF картасы құрылымдарында орналасқан деректерді автоматты түрде түсіндіру және көрсету үшін қосымша түрлерді қамтамасыз етеді.

Соңғы eBPF бағдарламасын құрастыру және оны OCI кескіні ретінде сақтау үшін, жай ғана “bee build file_with_code name:version” пәрменін орындаңыз және “bee run name: version” пәрменін іске қосыңыз. Әдепкі бойынша өңдеушіден алынған оқиғалар терминал терезесіне шығарылады, бірақ қажет болса, өңдеушіге байланыстырылған желі портына curl немесе wget утилиталарын пайдалану арқылы деректерді алуға болады. Өңдеушілерді OCI-үйлесімді репозитарийлер арқылы таратуға болады, мысалы, ghcr.io репозиторийінен (GitHub контейнер тізілімі) сыртқы өңдегішті іске қосу үшін «bee run ghcr.io/solo-io/bumblebee/tcpconnect пәрменін іске қосуға болады: $(ара нұсқасы)». Репозиторийге өңдеушіні орналастыру үшін «bee push» пәрмені ұсынылады, ал нұсқаны байланыстыру үшін «bee тегі».

Ақпарат көзі: opennet.ru

пікір қалдыру