Kua whakaputa a Solo.io, he kamupene e whakawhanake ana i ngā hua mō ngā pūnaha kapua, ngā ratonga moroiti, ngā ipu motuhake, me te rorohiko kore tūmau, i te kete taputapu BumbleBee pūtake tuwhera, e aro ana ki te whakahaere i te whakarite, te tohatoha, me te whakahaere i ngā kaupapa eBPF e rere ana i roto i tētahi mīhini mariko motuhake i roto i te kernel. Linux ā, ka taea te tukatuka i ngā mahi whatunga, te whakahaere urunga, me te aroturuki pūnaha. Kua tuhia te waehere ki Go, ā, kua tohatohahia i raro i te raihana Apache 2.0.
Ma te BumbleBee ka taea te kiki i tetahi kaupapa eBPF hei ahua ipu ki te whakatakotoranga OCI (Open Container Initiative), ka taea te whakahaere i runga i tetahi punaha kaore he whakahiato me te whakamahi i etahi atu waahanga ki te waahi kaiwhakamahi. Ko te taunekeneke ki te waehere eBPF i roto i te matua, tae atu ki te tukatuka o nga raraunga ka puta mai i te kaihautu eBPF, ka tangohia e BumbleBee, ka kaweake aunoatia enei raraunga i roto i te ahua o nga ine, histograms, rangitaki ranei, ka taea te uru atu, hei tauira, ma te whakamahi i te whaipainga curl. Ko te huarahi e whakaarohia ana ka taea e te kaiwhakawhanake te aro ki te tuhi i te waehere eBPF me te kore e whakararu i te whakahaere i te taunekeneke me tenei waehere mai i te waahi kaiwhakamahi, te huihuinga me te uta ki roto i te kernel.
Hei whakahaere i nga kaupapa eBPF, ka tukuna he taputapu "bee" momo Docker, ka taea e koe te tango tonu i te kaikawe eBPF o nga paanga mai i te putunga o waho ka whakahaere i runga i te punaha o te rohe. Ko te kete taputapu ka taea e koe te whakaputa anga waehere ki C mo nga kaikawe eBPF o tetahi kaupapa kua tohua (i tenei wa ko nga kaihautu anake mo nga mahi whatunga me nga konae ka haukotia nga waea ki te puranga whatunga me nga punaha konae kei te tautokohia). I runga i te anga i hangaia, ka taea e te kaiwhakawhanake te whakatinana tere i nga mahi e hiahia ana ia.
He rerekē ki te BCC (BPF Compiler Collection), kāore a BumbleBee e hanga anō i te waehere kaiwhakahaere mō ia putanga kernel. Linux (Ka whakamahia e BCC te whakahiatotanga i runga i te rere me Clang i ia wā ka whakahaerehia he kaupapa eBPF.) Hei whakatika i ngā take kawe, kei te whakawhanakehia ngā kete taputapu CO-RE me te libbpf, e āhei ai te whakahiato waehere kotahi noa iho, me te whakamahi i tētahi utauta whānui motuhake e urutau ana i te kaupapa kua utaina ki ngā momo kernel me te BTF (BPF Type Format) o nāianei. He tāpiri-ake libbpf a BumbleBee, ā, e whakarato ana i ētahi atu momo hei whakamārama aunoa me te whakaatu raraunga kua rongoatia ki ngā hanganga mahere eBPF paerewa, RingBuffer me HashMap.
Hei hanga i te kaupapa eBPF whakamutunga ka penapena hei ahua OCI, whakahaere noa i te whakahau "bee build file_with_code name:version", me te whakahaere i te whakahau "bee run name:version". Ma te taunoa, ka puta nga huihuinga mai i te kaihautu ki te matapihi tauranga, engari mena e tika ana, ka taea e koe te tiki raraunga ma te whakamahi i nga taputapu curl, wget ranei ki te tauranga whatunga kua herea ki te kaihautu. Ka taea te tohatoha nga Kaihautu ma roto i nga putunga hototahi-OCI, hei tauira, ki te whakahaere i tetahi kaihautu o waho mai i te putunga ghcr.io (GitHub Container Registry), ka taea e koe te whakahaere i te whakahau "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(putanga pi)". Hei whakanoho i tetahi kaihautu ki roto i te putunga, ka tukuna te whakahau "bee pana", me te here i tetahi putanga, "bee tag".
Source: opennet.ru
