BumbleBee – ohun elo irinṣẹ lati jẹ ki ẹda ati pinpin awọn eto eBPF rọrun

Solo.io, ile-iṣẹ kan ti o ṣe agbekalẹ awọn ọja fun ṣiṣe awọn ọna ṣiṣe awọsanma, awọn iṣẹ microservices, awọn apoti ti o ya sọtọ ati ẹrọ iširo olupin, ti ṣe atẹjade BumbleBee, ohun elo irinṣẹ orisun ṣiṣi ti o pinnu lati di irọrun igbaradi, pinpin ati ifilọlẹ awọn eto eBPF ti o ṣiṣẹ ni ẹrọ foju pataki kan inu inu. ekuro Linux ati gba awọn iṣẹ nẹtiwọọki ṣiṣẹ, iwọle iṣakoso ati awọn eto atẹle. Awọn koodu ti wa ni kikọ ni Go ati pinpin labẹ awọn Apache 2.0 iwe-ašẹ.

BumbleBee jẹ ki o ṣee ṣe lati ṣajọ eto eBPF kan bi aworan eiyan ni ọna kika OCI (Open Container Initiative), eyiti o le ṣiṣẹ lori eyikeyi eto laisi atunpo ati lilo awọn paati afikun ni aaye olumulo. Ibaraṣepọ pẹlu koodu eBPF ninu mojuto, pẹlu sisẹ data ti o nbọ lati ọdọ olutọju eBPF, ti gba nipasẹ BumbleBee, eyiti o ṣe okeere data yii laifọwọyi ni irisi awọn metiriki, awọn itan-akọọlẹ tabi awọn akọọlẹ, eyiti o le wọle, fun apẹẹrẹ, ni lilo curl IwUlO. Ọna ti a dabaa jẹ ki olupilẹṣẹ naa dojukọ lori kikọ koodu eBPF ati pe ko ni idamu nipasẹ siseto ibaraenisepo pẹlu koodu yii lati aaye olumulo, apejọ ati ikojọpọ sinu ekuro.

Lati ṣakoso awọn eto eBPF, ohun elo “bee” ara Docker ni a funni, pẹlu eyiti o le ṣe igbasilẹ oluṣakoso eBPF lẹsẹkẹsẹ lati ibi ipamọ ita ati ṣiṣe lori eto agbegbe. Ohun elo irinṣẹ ngbanilaaye lati ṣe agbekalẹ ilana koodu ni C fun awọn olutọju eBPF ti koko ti a yan (Lọwọlọwọ awọn olutọju nikan fun nẹtiwọọki ati awọn iṣẹ ṣiṣe faili ti o ṣe idiwọ awọn ipe si akopọ nẹtiwọọki ati awọn eto faili ni atilẹyin). Da lori ilana ti ipilẹṣẹ, olupilẹṣẹ le yarayara ṣe iṣẹ ṣiṣe ti o nifẹ si.

Ko dabi BCC (BPF Compiler Collection), BumbleBee ko ṣe atunṣe koodu olutọju patapata fun ẹya kọọkan ti ekuro Linux (BCC nlo akopọ lori-fly ni lilo Clang ni gbogbo igba ti eto eBPF ti ṣe ifilọlẹ). Lati yanju awọn iṣoro pẹlu gbigbe, awọn irinṣẹ CO-RE ati awọn irinṣẹ libbpf ti wa ni idagbasoke, gbigba ọ laaye lati kọ koodu lẹẹkanṣoṣo ati lo ẹru gbogbo agbaye pataki ti o ṣe deede eto ti kojọpọ si ekuro lọwọlọwọ ati Ọna kika BTF. BumbleBee jẹ afikun si libbpf ati pe o pese awọn iru afikun fun itumọ aladaaṣe ati ifihan data ti o wa ninu awọn ẹya maapu eBPF boṣewa RingBuffer ati HashMap.

Lati kọ eto eBPF ti o kẹhin ki o fipamọ bi aworan OCI, kan ṣiṣẹ aṣẹ “bee kọ faili_with_code orukọ: ẹya”, ati lati ṣiṣẹ aṣẹ “orukọ ṣiṣe bee: ẹya”. Nipa aiyipada, awọn iṣẹlẹ ti o gba lati ọdọ oluṣakoso yoo jade si window ebute, ṣugbọn ti o ba jẹ dandan, o le gba data nipa lilo curl tabi awọn ohun elo wget si ibudo nẹtiwọọki ti o so mọ oluṣakoso naa. Awọn olutọju ni a le pin nipasẹ awọn ibi ipamọ ibaramu OCI, fun apẹẹrẹ, lati ṣiṣẹ olutọju ita lati ibi ipamọ ghcr.io (GitHub Container Registry), o le ṣiṣe aṣẹ "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(ẹya oyin)”. Lati gbe olutọju kan si ibi ipamọ, aṣẹ “Titari oyin” ni a dabaa, ati lati di ẹya kan, “ tag bee”.

orisun: opennet.ru

Fi ọrọìwòye kun