BumbleBee - kit alat untuk memudahkan penciptaan dan pengedaran program eBPF

Solo.io, sebuah syarikat yang membangunkan produk untuk menjalankan sistem awan, perkhidmatan mikro, bekas terpencil dan pengkomputeran tanpa pelayan, telah menerbitkan BumbleBee, kit alat sumber terbuka yang bertujuan untuk memudahkan penyediaan, pengedaran dan pelancaran program eBPF yang dijalankan dalam mesin maya khas di dalamnya. kernel Linux dan membenarkan operasi rangkaian pemprosesan, mengawal akses dan memantau sistem. Kod ini ditulis dalam Go dan diedarkan di bawah lesen Apache 2.0.

BumbleBee memungkinkan untuk membungkus program eBPF sebagai imej kontena dalam format OCI (Open Container Initiative), yang boleh dijalankan pada mana-mana sistem tanpa penyusunan semula dan penggunaan komponen tambahan dalam ruang pengguna. Interaksi dengan kod eBPF dalam teras, termasuk pemprosesan data yang datang daripada pengendali eBPF, diambil alih oleh BumbleBee, yang secara automatik mengeksport data ini dalam bentuk metrik, histogram atau log, yang boleh diakses, contohnya, menggunakan utiliti curl. Pendekatan yang dicadangkan membolehkan pembangun menumpukan pada menulis kod eBPF dan tidak terganggu dengan mengatur interaksi dengan kod ini dari ruang pengguna, pemasangan dan pemuatan ke dalam kernel.

Untuk mengurus program eBPF, utiliti "lebah" gaya Docker ditawarkan, yang dengannya anda boleh memuat turun pengendali minat eBPF dengan segera daripada repositori luaran dan menjalankannya pada sistem setempat. Kit alat membolehkan anda menjana rangka kerja kod dalam C untuk pengendali eBPF bagi topik yang dipilih (pada masa ini hanya pengendali untuk rangkaian dan operasi fail yang memintas panggilan ke susunan rangkaian dan sistem fail disokong). Berdasarkan rangka kerja yang dijana, pembangun boleh melaksanakan fungsi yang diminatinya dengan cepat.

Tidak seperti BCC (BPF Compiler Collection), BumbleBee tidak membina semula sepenuhnya kod pengendali untuk setiap versi kernel Linux (BCC menggunakan kompilasi on-the-fly menggunakan Clang setiap kali program eBPF dilancarkan). Untuk menyelesaikan masalah dengan mudah alih, alat CO-RE dan libbpf sedang dibangunkan, membolehkan anda membina kod sekali sahaja dan menggunakan pemuat universal khas yang menyesuaikan program yang dimuatkan kepada kernel semasa dan Format Jenis BTF. BumbleBee ialah add-on kepada libbpf dan menyediakan jenis tambahan untuk tafsiran automatik dan paparan data yang terletak dalam struktur peta eBPF standard RingBuffer dan HashMap.

Untuk membina program eBPF terakhir dan menyimpannya sebagai imej OCI, hanya jalankan arahan "bee build file_with_code name:version", dan untuk menjalankan arahan "bee run name:version". Secara lalai, peristiwa yang diterima daripada pengendali akan dikeluarkan ke tetingkap terminal, tetapi jika perlu, anda boleh mendapatkan data dengan menggunakan utiliti curl atau wget ke port rangkaian yang terikat kepada pengendali. Pengendali boleh diedarkan melalui repositori yang serasi dengan OCI, sebagai contoh, untuk menjalankan pengendali luaran daripada repositori ghcr.io (GitHub Container Registry), anda boleh menjalankan arahan β€œbee run ghcr.io/solo-io/bumblebee/tcpconnect: $(versi lebah)”. Untuk meletakkan pengendali dalam repositori, arahan "bee push" dicadangkan, dan untuk mengikat versi, "bee tag".

Sumber: opennet.ru

Tambah komen