BumbleBee - eBPF програмыг үүсгэх, түгээх ажлыг хялбаршуулах хэрэгсэл

Solo.io нь үүлэн систем, микро үйлчилгээ, тусгаарлагдсан контейнер, сервергүй тооцоололд зориулсан бүтээгдэхүүн боловсруулдаг компани нь доторх тусгай виртуал машинд ажилладаг eBPF програмуудыг бэлтгэх, түгээх, эхлүүлэхэд хялбар болгох зорилготой нээлттэй эхийн BumbleBee хэрэгслийг хэвлэв. Линукс цөм ба сүлжээний үйл ажиллагааг боловсруулах, хандалтыг хянах, системийг хянах боломжийг олгоно. Код нь 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 нь Линуксийн цөмийн хувилбар бүрийн зохицуулагчийн кодыг бүрэн сэргээдэггүй (BCC нь eBPF програмыг эхлүүлэх бүрт Clang ашиглан шууд эмхэтгэлийг ашигладаг). Зөөврийн асуудлуудыг шийдвэрлэхийн тулд CO-RE болон libbpf хэрэгслүүдийг боловсруулж байгаа бөгөөд энэ нь танд зөвхөн нэг удаа код үүсгэх, ачаалагдсан програмыг одоогийн цөм болон BTF төрлийн форматад тохируулах тусгай бүх нийтийн дуудагч ашиглах боломжийг олгодог. BumbleBee нь libbpf-ийн нэмэлт хэрэгсэл бөгөөд RingBuffer болон HashMap стандарт eBPF газрын зургийн бүтцэд байрлах өгөгдлийг автоматаар тайлбарлах, харуулах нэмэлт төрлүүдийг өгдөг.

Эцсийн eBPF программыг бүтээж, OCI дүрс болгон хадгалахын тулд "зөгий бүтээх файл_кодын нэр: хувилбар" командыг, "зөгий ажиллуулах нэр: хувилбар" командыг ажиллуулна уу. Анхдагч байдлаар, зохицуулагчаас хүлээн авсан үйл явдлууд нь терминалын цонхонд гарах боловч шаардлагатай бол та зохицуулагчтай холбогдсон сүлжээний порт руу curl эсвэл wget хэрэглүүрийг ашиглан өгөгдлийг олж авах боломжтой. Зохицуулагчдыг OCI-тэй нийцтэй репозиторуудаар тарааж болно, жишээлбэл, ghcr.io агуулахаас (GitHub Контейнер Бүртгэл) гадаад зохицуулагчийг ажиллуулахын тулд та "bee run ghcr.io/solo-io/bumblebee/tcpconnect" командыг ажиллуулж болно: $(зөгий хувилбар)”. Репозиторт зохицуулагчийг байрлуулахын тулд "зөгий түлхэх" командыг, хувилбарыг холбоход "зөгий таг"-ыг санал болгож байна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх