BumbleBee - eBPF நிரல்களின் உருவாக்கம் மற்றும் விநியோகத்தை எளிதாக்குவதற்கான ஒரு கருவித்தொகுப்பு

Solo.io, கிளவுட் சிஸ்டம்கள், மைக்ரோ சர்வீஸ்கள், தனிமைப்படுத்தப்பட்ட கொள்கலன்கள் மற்றும் சர்வர்லெஸ் கம்ப்யூட்டிங்கிற்கான தயாரிப்புகளை உருவாக்கும் ஒரு நிறுவனம், ஒரு சிறப்பு மெய்நிகர் இயந்திரத்தில் இயங்கும் eBPF நிரல்களின் தயாரிப்பு, விநியோகம் மற்றும் துவக்கத்தை எளிதாக்குவதை நோக்கமாகக் கொண்ட ஒரு திறந்த மூல கருவித்தொகுப்பான BumbleBee ஐ வெளியிட்டுள்ளது. லினக்ஸ் கர்னல் மற்றும் செயலாக்க நெட்வொர்க் செயல்பாடுகளை அனுமதிக்கிறது, அணுகல் மற்றும் கண்காணிப்பு அமைப்புகளை கட்டுப்படுத்துகிறது. இந்த குறியீடு Go இல் எழுதப்பட்டு Apache 2.0 உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

BumbleBee ஆனது eBPF நிரலை OCI (திறந்த கொள்கலன் முன்முயற்சி) வடிவத்தில் ஒரு கொள்கலன் படமாக தொகுக்க உதவுகிறது, இது எந்த கணினியிலும் மறுதொகுப்பு மற்றும் பயனர் இடத்தில் கூடுதல் கூறுகளைப் பயன்படுத்தாமல் இயக்க முடியும். eBPF ஹேண்ட்லரில் இருந்து வரும் தரவை செயலாக்குவது உட்பட, மையத்தில் உள்ள eBPF குறியீட்டுடனான தொடர்பு, BumbleBee ஆல் எடுக்கப்படுகிறது, இது தானாகவே இந்தத் தரவை அளவீடுகள், ஹிஸ்டோகிராம்கள் அல்லது பதிவுகள் வடிவில் ஏற்றுமதி செய்கிறது, எடுத்துக்காட்டாக, இதைப் பயன்படுத்தி சுருட்டை பயன்பாடு. முன்மொழியப்பட்ட அணுகுமுறை டெவலப்பரை eBPF குறியீட்டை எழுதுவதில் கவனம் செலுத்த அனுமதிக்கிறது மற்றும் பயனர் இடம், அசெம்பிளி மற்றும் கர்னலில் ஏற்றுதல் ஆகியவற்றிலிருந்து இந்தக் குறியீட்டுடன் தொடர்புகளை ஒழுங்கமைப்பதன் மூலம் திசைதிருப்பப்படாது.

eBPF நிரல்களை நிர்வகிப்பதற்கு, Docker-style "bee" பயன்பாடு வழங்கப்படுகிறது, இதன் மூலம் நீங்கள் உடனடியாக eBPF கையாளுபவரை வெளிப்புற களஞ்சியத்திலிருந்து பதிவிறக்கம் செய்து உள்ளூர் கணினியில் இயக்கலாம். தேர்ந்தெடுக்கப்பட்ட தலைப்பின் eBPF கையாளுபவர்களுக்கு C இல் குறியீட்டு கட்டமைப்பை உருவாக்க கருவித்தொகுப்பு உங்களை அனுமதிக்கிறது (தற்போது நெட்வொர்க் மற்றும் கோப்பு செயல்பாடுகளுக்கான ஹேண்ட்லர்கள் மட்டுமே நெட்வொர்க் ஸ்டேக்கிற்கான அழைப்புகளை இடைமறித்து கோப்பு முறைமைகள் ஆதரிக்கப்படுகின்றன). உருவாக்கப்பட்ட கட்டமைப்பின் அடிப்படையில், டெவலப்பர் அவர் ஆர்வமுள்ள செயல்பாட்டை விரைவாக செயல்படுத்த முடியும்.

BCC (BPF Compiler Collection) போலல்லாமல், Linux கர்னலின் ஒவ்வொரு பதிப்பிற்கான ஹேண்ட்லர் குறியீட்டை BumbleBee முழுவதுமாக மீண்டும் உருவாக்கவில்லை (BCC ஆனது eBPF நிரல் தொடங்கப்படும் ஒவ்வொரு முறையும் Clang ஐப் பயன்படுத்தி ஆன்-தி-ஃப்ளை தொகுப்பைப் பயன்படுத்துகிறது). பெயர்வுத்திறனில் உள்ள சிக்கல்களைத் தீர்க்க, CO-RE மற்றும் libbpf கருவிகள் உருவாக்கப்படுகின்றன, இது ஒருமுறை மட்டுமே குறியீட்டை உருவாக்க அனுமதிக்கிறது மற்றும் ஏற்றப்பட்ட நிரலை தற்போதைய கர்னல் மற்றும் BTF வகை வடிவமைப்பிற்கு மாற்றியமைக்கும் ஒரு சிறப்பு உலகளாவிய ஏற்றியைப் பயன்படுத்துகிறது. BumbleBee என்பது libbpf க்கு ஒரு துணை நிரலாகும் மற்றும் நிலையான eBPF வரைபட கட்டமைப்புகளான RingBuffer மற்றும் HashMap இல் உள்ள தரவுகளின் தானியங்கி விளக்கம் மற்றும் காட்சிக்கு கூடுதல் வகைகளை வழங்குகிறது.

இறுதி eBPF நிரலை உருவாக்கி அதை OCI படமாகச் சேமிக்க, “bee build file_with_code name:version” கட்டளையை இயக்கவும், மேலும் “bee run name:version” கட்டளையை இயக்கவும். முன்னிருப்பாக, ஹேண்ட்லரிடமிருந்து பெறப்பட்ட நிகழ்வுகள் டெர்மினல் விண்டோவிற்கு வெளியிடப்படும், ஆனால் தேவைப்பட்டால், ஹேண்ட்லருடன் பிணைக்கப்பட்ட பிணைய போர்ட்டில் கர்ல் அல்லது wget பயன்பாடுகளைப் பயன்படுத்தி தரவைப் பெறலாம். OCI-இணக்கமான களஞ்சியங்கள் மூலம் ஹேண்ட்லர்களை விநியோகிக்க முடியும், எடுத்துக்காட்டாக, ghcr.io களஞ்சியத்திலிருந்து (GitHub கண்டெய்னர் ரெஜிஸ்ட்ரி) வெளிப்புற ஹேண்ட்லரை இயக்க, நீங்கள் “bee run ghcr.io/solo-io/bumblebee/tcpconnect கட்டளையை இயக்கலாம்: $(தேனீ பதிப்பு)”. களஞ்சியத்தில் ஹேண்ட்லரை வைக்க, "பீ புஷ்" கட்டளை முன்மொழியப்பட்டது, மேலும் ஒரு பதிப்பை இணைக்க, "பீ டேக்".

ஆதாரம்: opennet.ru

கருத்தைச் சேர்