BumbleBee - eBPF программаларын түзүүнү жана бөлүштүрүүнү жөнөкөйлөтүү үчүн инструмент

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

BumbleBee eBPF программасын OCI (Open Container Initiative) форматындагы контейнер сүрөтү катары пакеттөө мүмкүнчүлүгүн берет, аны каалаган системада кайра компиляциясыз жана колдонуучу мейкиндигинде кошумча компоненттерди колдонбостон иштетүүгө болот. Негизги eBPF коду менен өз ара аракеттенүүнү, анын ичинде eBPF иштеткичинен келген маалыматтарды иштетүүнү BumbleBee өзүнө алат, ал бул маалыматтарды автоматтык түрдө метрика, гистограмма же журнал түрүндө экспорттойт, аларга, мисалы, curl утилитасы. Сунушталган ыкма иштеп чыгуучуга eBPF кодун жазууга көңүл бурууга жана бул код менен колдонуучу мейкиндигинен өз ара аракеттенүүнү уюштуруу, чогултуу жана ядрого жүктөө менен алаксыбоого мүмкүндүк берет.

eBPF программаларын башкаруу үчүн Докер стилиндеги “аары” утилитасы сунушталат, анын жардамы менен сиз кызыкдар болгон 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: $(аары версиясы)”. Репозиторийге иштеткичти жайгаштыруу үчүн "аарыларды түртүү" буйругу сунушталат, ал эми версияны байлоо үчүн "аары теги".

Source: opennet.ru

Комментарий кошуу