BumbleBee - një paketë mjetesh për të thjeshtuar krijimin dhe shpërndarjen e programeve eBPF

Solo.io, një kompani që zhvillon produkte për funksionimin e sistemeve cloud, mikroshërbimeve, kontejnerëve të izoluar dhe kompjuterave pa server, ka publikuar BumbleBee, një paketë veglash me burim të hapur që synon të thjeshtojë përgatitjen, shpërndarjen dhe lëshimin e programeve eBPF që funksionojnë në një makinë të veçantë virtuale brenda. kernelin Linux dhe lejojnë përpunimin e operacioneve të rrjetit, kontrollin e aksesit dhe monitorimin e sistemeve. Kodi është shkruar në Go dhe shpërndahet nën licencën Apache 2.0.

BumbleBee bën të mundur paketimin e një programi eBPF si imazh kontejneri në formatin OCI (Open Container Initiative), i cili mund të ekzekutohet në çdo sistem pa ripërpilim dhe përdorimin e komponentëve shtesë në hapësirën e përdoruesit. Ndërveprimi me kodin eBPF në bërthamë, duke përfshirë përpunimin e të dhënave që vijnë nga mbajtësi eBPF, merret përsipër nga BumbleBee, i cili i eksporton automatikisht këto të dhëna në formën e metrikës, histogrameve ose regjistrave, të cilët mund të aksesohen, për shembull, duke përdorur dobia për kaçurrela. Qasja e propozuar i lejon zhvilluesit të fokusohet në shkrimin e kodit eBPF dhe të mos shpërqendrohet duke organizuar ndërveprim me këtë kod nga hapësira e përdoruesit, montimi dhe ngarkimi në kernel.

Për të menaxhuar programet eBPF, ofrohet një mjet "bletë" i stilit Docker, me të cilin mund të shkarkoni menjëherë mbajtësin e interesit eBPF nga një depo e jashtme dhe ta ekzekutoni atë në sistemin lokal. Paketa e veglave ju lejon të gjeneroni një kornizë kodi në C për mbajtësit eBPF të një teme të zgjedhur (aktualisht mbështeten vetëm mbajtësit për operacionet e rrjetit dhe skedarëve që përgjojnë thirrjet në grupin e rrjetit dhe sistemet e skedarëve). Bazuar në kornizën e krijuar, zhvilluesi mund të zbatojë shpejt funksionalitetin për të cilin është i interesuar.

Ndryshe nga BCC (BPF Compiler Collection), BumbleBee nuk e rindërton plotësisht kodin e mbajtësit për çdo version të kernelit Linux (BCC përdor përpilimin në lëvizje duke përdorur Clang sa herë që lëshohet programi eBPF). Për të zgjidhur problemet me transportueshmërinë, mjetet CO-RE dhe libbpf janë duke u zhvilluar, duke ju lejuar të ndërtoni kodin vetëm një herë dhe të përdorni një ngarkues të veçantë universal që përshtat programin e ngarkuar me kernelin aktual dhe formatin e tipit BTF. BumbleBee është një shtesë për libbpf dhe ofron lloje shtesë për interpretimin dhe shfaqjen automatike të të dhënave të vendosura në strukturat standarde të hartës eBPF RingBuffer dhe HashMap.

Për të ndërtuar programin përfundimtar eBPF dhe për ta ruajtur atë si një imazh OCI, thjesht ekzekutoni komandën "bee build file_with_code name:version" dhe për të ekzekutuar komandën "bee run name:version". Si parazgjedhje, ngjarjet e marra nga mbajtësi do të dalin në dritaren e terminalit, por nëse është e nevojshme, mund të merrni të dhëna duke përdorur programet curl ose wget në portën e rrjetit të lidhur me mbajtësin. Trajtuesit mund të shpërndahen përmes depove të pajtueshme me OCI, për shembull, për të ekzekutuar një mbajtës të jashtëm nga depoja ghcr.io (Regjistri i kontejnerëve të GitHub), mund të ekzekutoni komandën "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $ (versioni i bletës)”. Për të vendosur një mbajtës në depo, propozohet komanda "bee shty", dhe për të lidhur një version, "etiketa bletë".

Burimi: opennet.ru

Shto një koment