BumbleBee - eBPF dasturlarini yaratish va tarqatishni soddalashtirish uchun asboblar to'plami

Solo.io, bulutli tizimlar, mikroservislar, izolyatsiyalangan konteynerlar va serversiz hisoblashlar uchun mahsulotlar ishlab chiqaruvchi kompaniya ichida maxsus virtual mashinada ishlaydigan eBPF dasturlarini tayyorlash, tarqatish va ishga tushirishni soddalashtirishga qaratilgan BumbleBee ochiq manbali asboblar to'plamini nashr etdi. Linux yadrosi va tarmoq operatsiyalarini qayta ishlashga ruxsat berish, kirish va monitoring tizimlarini boshqarish. Kod Go-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi.

BumbleBee eBPF dasturini konteyner tasviri sifatida OCI (Ochiq konteyner tashabbusi) formatida joylashtirish imkonini beradi, uni har qanday tizimda qayta kompilyatsiya qilmasdan va foydalanuvchi maydonida qo'shimcha komponentlardan foydalanmasdan ishga tushirish mumkin. Yadrodagi eBPF kodi bilan o'zaro aloqa, shu jumladan eBPF ishlov beruvchisidan keladigan ma'lumotlarni qayta ishlash BumbleBee tomonidan qabul qilinadi, bu ma'lumotlarni avtomatik ravishda ko'rsatkichlar, gistogrammalar yoki jurnallar shaklida eksport qiladi, masalan, foydalanish mumkin. curl yordam dasturi. Taklif etilayotgan yondashuv ishlab chiquvchiga eBPF kodini yozishga e'tibor qaratishga va foydalanuvchi maydonidan ushbu kod bilan o'zaro aloqani tashkil qilish, yig'ish va yadroga yuklash orqali chalg'itmaslik imkonini beradi.

eBPF dasturlarini boshqarish uchun Docker uslubidagi "ari" yordam dasturi taklif etiladi, uning yordamida siz darhol tashqi ombordan qiziqish eBPF ishlov beruvchisini yuklab olishingiz va uni mahalliy tizimda ishga tushirishingiz mumkin. Asboblar to'plami tanlangan mavzuning eBPF ishlov beruvchilari uchun C tilida kod ramkasini yaratishga imkon beradi (hozirda faqat tarmoq stekiga va fayl tizimlariga qo'ng'iroqlarni to'xtatuvchi tarmoq va fayl operatsiyalari uchun ishlov beruvchilar qo'llab-quvvatlanadi). Yaratilgan ramka asosida ishlab chiquvchi o'zini qiziqtirgan funksiyani tezda amalga oshirishi mumkin.

BCC (BPF Compiler Collection) dan farqli o'laroq, BumbleBee Linux yadrosining har bir versiyasi uchun ishlov beruvchi kodini to'liq qayta qurmaydi (BCC har safar eBPF dasturi ishga tushirilganda Clang yordamida tezkor kompilyatsiyadan foydalanadi). Portativlik bilan bog'liq muammolarni hal qilish uchun CO-RE va libbpf vositalari ishlab chiqilmoqda, bu sizga faqat bir marta kod yaratish va yuklangan dasturni joriy yadro va BTF Type Formatiga moslashtiradigan maxsus universal yuklagichdan foydalanish imkonini beradi. BumbleBee libbpf-ga qo'shimcha bo'lib, RingBuffer va HashMap standart eBPF xarita tuzilmalarida joylashgan ma'lumotlarni avtomatik talqin qilish va ko'rsatish uchun qo'shimcha turlarni taqdim etadi.

Yakuniy eBPF dasturini yaratish va uni OCI tasviri sifatida saqlash uchun “bee build file_with_code name:version” buyrug‘ini va “bee run name:version” buyrug‘ini bajarish kifoya. Odatiy bo'lib, ishlov beruvchidan olingan hodisalar terminal oynasiga chiqariladi, lekin agar kerak bo'lsa, ishlov beruvchiga bog'langan tarmoq portiga curl yoki wget yordam dasturlari yordamida ma'lumotlarni olishingiz mumkin. Ishlovchilar OCI-mos keladigan omborlar orqali tarqatilishi mumkin, masalan, ghcr.io omboridan (GitHub Container Registry) tashqi ishlov beruvchini ishga tushirish uchun siz “bee run ghcr.io/solo-io/bumblebee/tcpconnect buyrug‘ini bajarishingiz mumkin: $(ari versiyasi)”. Repozitariyga ishlov beruvchini joylashtirish uchun “bee push” buyrug'i va versiyani bog'lash uchun “bee tag” taklif etiladi.

Manba: opennet.ru

a Izoh qo'shish