BumbleBee: un conjunt d'eines per simplificar la creació i distribució de programes eBPF

Solo.io, una empresa que desenvolupa productes per executar sistemes al núvol, microserveis, contenidors aïllats i informàtica sense servidor, ha publicat BumbleBee, un conjunt d'eines de codi obert destinat a simplificar la preparació, distribució i llançament de programes eBPF que s'executen en una màquina virtual especial a l'interior. el nucli de Linux i permeten processar operacions de xarxa, controlar l'accés i supervisar sistemes. El codi està escrit a Go i es distribueix sota la llicència Apache 2.0.

BumbleBee permet empaquetar un programa eBPF com a imatge de contenidor en el format OCI (Open Container Initiative), que es pot executar en qualsevol sistema sense recompilació i l'ús de components addicionals a l'espai d'usuari. La interacció amb el codi eBPF al nucli, inclòs el processament de les dades procedents del controlador eBPF, és assumida per BumbleBee, que exporta automàticament aquestes dades en forma de mètriques, histogrames o registres, als quals es pot accedir, per exemple, mitjançant el utilitat de rínxols. L'enfocament proposat permet al desenvolupador centrar-se a escriure codi eBPF i no distreure's organitzant la interacció amb aquest codi des de l'espai d'usuari, el muntatge i la càrrega al nucli.

Per gestionar els programes eBPF, s'ofereix una utilitat "abella" d'estil Docker, amb la qual podeu descarregar immediatament el controlador d'eBPF d'interès des d'un dipòsit extern i executar-lo al sistema local. El conjunt d'eines us permet generar un marc de codi en C per als controladors eBPF d'un tema seleccionat (actualment només s'admeten els controladors per a operacions de xarxa i fitxers que intercepten trucades a la pila de xarxa i als sistemes de fitxers). A partir del marc generat, el desenvolupador pot implementar ràpidament la funcionalitat que li interessa.

A diferència de BCC (BPF Compiler Collection), BumbleBee no reconstrueix completament el codi del controlador per a cada versió del nucli Linux (BCC utilitza la compilació sobre la marxa utilitzant Clang cada vegada que es llança el programa eBPF). Per resoldre problemes de portabilitat, s'estan desenvolupant les eines CO-RE i libbpf, que us permeten crear codi només una vegada i utilitzar un carregador universal especial que adapta el programa carregat al nucli actual i al format de tipus BTF. BumbleBee és un complement de libbpf i proporciona tipus addicionals per a la interpretació i la visualització automàtica de dades ubicades a les estructures de mapes estàndard eBPF RingBuffer i HashMap.

Per crear el programa eBPF final i desar-lo com a imatge OCI, només cal que executeu l'ordre "bee build file_with_code name:version" i executeu l'ordre "bee run name:version". Per defecte, els esdeveniments rebuts del controlador s'enviaran a la finestra del terminal, però si cal, podeu obtenir dades utilitzant les utilitats curl o wget al port de xarxa vinculat al controlador. Els controladors es poden distribuir a través de repositoris compatibles amb OCI, per exemple, per executar un controlador extern des del dipòsit ghcr.io (Registre de contenidors GitHub), podeu executar l'ordre "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(versió abella)”. Per col·locar un controlador al repositori, es proposa l'ordre "bee push", i per enllaçar una versió, "bee tag".

Font: opennet.ru

Afegeix comentari