BumbleBee - eBPF programlarının oluşturulmasını ve dağıtımını basitleştiren bir araç seti

Bulut sistemleri, mikro hizmetler, izole konteynerler ve sunucusuz bilgi işlem için ürünler geliştiren Solo.io şirketi, çekirdek içindeki özel bir sanal makinede çalışan eBPF programlarının hazırlanmasını, dağıtımını ve yürütülmesini basitleştirmeyi amaçlayan açık kaynaklı BumbleBee araç setini yayınladı. Linux Ağ işlemlerinin, erişim kontrolünün ve sistem izlemenin işlenmesini sağlar. Kod Go dilinde yazılmıştır ve Apache 2.0 lisansı altında dağıtılmaktadır.

BumbleBee, bir eBPF programını OCI (Açık Konteyner Girişimi) formatında bir konteyner görüntüsü olarak paketlemeyi mümkün kılar; bu program, yeniden derlemeye ve kullanıcı alanında ek bileşenlerin kullanımına gerek kalmadan herhangi bir sistemde çalıştırılabilir. eBPF işleyicisinden gelen verilerin işlenmesi de dahil olmak üzere, çekirdekteki eBPF koduyla etkileşim, bu verileri otomatik olarak örneğin aşağıdakiler kullanılarak erişilebilen metrikler, histogramlar veya günlükler biçiminde dışa aktaran BumbleBee tarafından üstlenilir. kıvrılma yardımcı programı. Önerilen yaklaşım, geliştiricinin eBPF kodu yazmaya odaklanmasına ve bu kodla kullanıcı alanı, montaj ve çekirdeğe yükleme arasındaki etkileşimi organize ederek dikkatinin dağılmamasına olanak tanır.

EBPF programlarını yönetmek için, ilgilendiğiniz eBPF işleyicisini harici bir depodan hemen indirebileceğiniz ve yerel sistemde çalıştırabileceğiniz Docker tarzı bir "arı" yardımcı programı sunulur. Araç seti, seçilen bir konunun eBPF işleyicileri için C dilinde bir kod çerçevesi oluşturmanıza olanak tanır (şu anda yalnızca ağ yığınına ve dosya sistemlerine yapılan çağrıları engelleyen ağ ve dosya işlemlerine yönelik işleyiciler desteklenmektedir). Oluşturulan çerçeveye dayanarak geliştirici, ilgilendiği işlevselliği hızlı bir şekilde uygulayabilir.

BCC'nin (BPF Compiler Collection) aksine, BumbleBee her çekirdek sürümü için işleyici kodunun tamamen yeniden derlenmesini gerçekleştirmez. Linux (BCC, bir eBPF programı her çalıştırıldığında Clang ile anlık derleme kullanır.) Taşınabilirlik sorunlarını gidermek için, kodun yalnızca bir kez derlenmesine ve yüklenen programı mevcut çekirdek ve BTF (BPF Tip Biçimi) tiplerine uyarlayan özel bir evrensel yükleyici kullanılmasına olanak tanıyan CO-RE ve libbpf araç setleri geliştirilmektedir. BumbleBee, libbpf eklentisidir ve standart eBPF harita yapıları olan RingBuffer ve HashMap'te depolanan verileri otomatik olarak yorumlamak ve görüntülemek için ek tipler sağlar.

Nihai eBPF programını oluşturmak ve onu bir OCI görüntüsü olarak kaydetmek için, "bee build file_with_code name:version" komutunu çalıştırmanız ve "bee run name:version" komutunu çalıştırmanız yeterlidir. Varsayılan olarak, işleyiciden alınan olaylar terminal penceresine aktarılacaktır, ancak gerekirse işleyiciye bağlı ağ bağlantı noktasına curl veya wget yardımcı programlarını kullanarak veri alabilirsiniz. İşleyiciler OCI uyumlu depolar aracılığıyla dağıtılabilir; örneğin, ghcr.io deposundan (GitHub Container Registry) harici bir işleyici çalıştırmak için “bee run ghcr.io/solo-io/bumblebee/tcpconnect” komutunu çalıştırabilirsiniz: $(arı versiyonu)”. Depoya bir işleyici yerleştirmek için "arı itme" komutu ve bir sürümü bağlamak için "arı etiketi" önerilir.

Kaynak: opennet.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster