BumbleBee - eBPF වැඩසටහන් නිර්මාණය සහ බෙදා හැරීම සරල කිරීමට මෙවලම් කට්ටලයක්

Solo.io, ක්ලවුඩ් පද්ධති, ක්ෂුද්‍ර සේවා, හුදකලා බහාලුම් සහ සේවාදායක රහිත පරිගණකකරණය සඳහා නිෂ්පාදන සංවර්ධනය කරන සමාගමක්, ඇතුළත විශේෂ අතථ්‍ය යන්ත්‍රයක් තුළ ක්‍රියාත්මක වන eBPF වැඩසටහන් සකස් කිරීම, බෙදා හැරීම සහ දියත් කිරීම සරල කිරීම අරමුණු කරගත් විවෘත මූලාශ්‍ර මෙවලම් කට්ටලයක් වන BumbleBee ප්‍රකාශයට පත් කර ඇත. ලිනක්ස් කර්නලය සහ ජාල මෙහෙයුම් සැකසීමට, ප්‍රවේශ පාලනය සහ මොනිටර පද්ධති වලට ඉඩ ලබා දේ. කේතය Go වලින් ලියා Apache 2.0 බලපත්‍රය යටතේ බෙදා හරිනු ලැබේ.

BumbleBee මඟින් eBPF වැඩසටහනක් OCI (Open Container Initiative) ආකෘතියෙන් බහාලුම් රූපයක් ලෙස ඇසුරුම් කිරීමට හැකි වේ, එය නැවත සම්පාදනය නොකර ඕනෑම පද්ධතියක ධාවනය කළ හැකි අතර පරිශීලක අවකාශයේ අමතර සංරචක භාවිතා කරයි. eBPF හසුරුවන්නා වෙතින් ලැබෙන දත්ත සැකසීම ඇතුළුව හරයේ ඇති eBPF කේතය සමඟ අන්තර්ක්‍රියා කිරීම BumbleBee විසින් භාර ගනු ලැබේ, එය ස්වයංක්‍රීයව මෙම දත්ත ප්‍රමිතික, histograms හෝ logs ආකාරයෙන් අපනයනය කරයි, උදාහරණයක් ලෙස, භාවිතා කළ හැක curl උපයෝගීතාව. යෝජිත ප්‍රවේශය මඟින් සංවර්ධකයාට eBPF කේතය ලිවීම කෙරෙහි අවධානය යොමු කිරීමට ඉඩ ලබා දෙන අතර පරිශීලක අවකාශයෙන්, එකලස් කිරීමෙන් සහ කර්නලයට පැටවීමෙන් මෙම කේතය සමඟ අන්තර්ක්‍රියා සංවිධානය කිරීමෙන් අවධානය වෙනතකට යොමු නොකරයි.

eBPF වැඩසටහන් කළමනාකරණය කිරීම සඳහා, Docker-style "bee" උපයෝගීතාවයක් පිරිනමනු ලබන අතර, ඔබට වහාම බාහිර ගබඩාවකින් උනන්දුවක් දක්වන eBPF හසුරුව බාගත කර එය දේශීය පද්ධතිය මත ධාවනය කළ හැකිය. තෝරාගත් මාතෘකාවක eBPF හසුරුවන්නන් සඳහා C හි කේත රාමුවක් උත්පාදනය කිරීමට මෙවලම් කට්ටලය ඔබට ඉඩ සලසයි (දැනට ජාල තොගයට සහ ගොනු පද්ධති වෙත ඇමතුම්වලට බාධා කරන ජාල සහ ගොනු මෙහෙයුම් සඳහා පමණක් හසුරුවන්නන් පමණි). ජනනය කරන ලද රාමුව මත පදනම්ව, සංවර්ධකයාට ඔහු උනන්දුවක් දක්වන ක්රියාකාරිත්වය ඉක්මනින් ක්රියාත්මක කළ හැකිය.

BCC (BPF Compiler Collection) මෙන් නොව, 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” විධානය ක්‍රියාත්මක කරන්න. පෙරනිමියෙන්, හසුරුවන්නා වෙතින් ලැබෙන සිදුවීම් පර්යන්ත කවුළුව වෙත ප්‍රතිදානය කරනු ඇත, නමුත් අවශ්‍ය නම්, ඔබට හසුරුවන්නා වෙත බැඳ ඇති ජාල වරාය වෙත curl හෝ wget උපයෝගිතා භාවිතා කිරීමෙන් දත්ත ලබා ගත හැක. OCI-අනුකූල ගබඩාවන් හරහා හසුරුවන්න බෙදා හැරිය හැක, උදාහරණයක් ලෙස, ghcr.io ගබඩාවෙන් (GitHub බහාලුම් රෙජිස්ට්‍රිය) බාහිර හසුරුවන්නක් ක්‍රියාත්මක කිරීමට, ඔබට “bee run ghcr.io/solo-io/bumblebee/tcpconnect විධානය ක්‍රියාත්මක කළ හැකිය: $(මී මැසි අනුවාදය)". ගබඩාවෙහි හසුරුවන්නෙකු තැබීම සඳහා, "මී මැසි තල්ලු" විධානය යෝජනා කර ඇති අතර, අනුවාදයක් බැඳීමට, "මී ටැග්".

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න