Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

හෙලෝ, මගේ නම Dmitry Krasnov. වසර පහකට වැඩි කාලයක් මම කුබර්නෙටස් පොකුරු පරිපාලනය කරමින් සංකීර්ණ ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය ගොඩනඟමින් සිටිමි. මෙම වසර ආරම්භයේදී, අපි Containerum මත පදනම් වූ Kubernetes පොකුරු කළමනාකරණය සඳහා සේවාවක් දියත් කළෙමු. මෙම අවස්ථාව ප්‍රයෝජනයට ගනිමින්, Kubernetes යනු කුමක්ද සහ වෙළෙන්දෙකු සමඟ ඒකාබද්ධ වීම විවෘත මූලාශ්‍රයෙන් වෙනස් වන්නේ කෙසේදැයි මම ඔබට කියමි.

ආරම්භ කිරීමට, කුමක්ද කුබර්නෙට්ස්. මෙය ධාරක විශාල සංඛ්‍යාවක් මත බහාලුම් කළමනාකරණය කිරීමේ පද්ධතියකි. ග්‍රීක භාෂාවෙන්, එය "නියමු" හෝ "හෙල්ස්මන්" ලෙස පරිවර්තනය කර ඇත. මුලින් Google විසින් සංවර්ධනය කරන ලද අතර පසුව ලොව ප්‍රමුඛ පෙළේ සංවර්ධකයින්, අවසාන පරිශීලකයින් සහ බහාලුම් තාක්‍ෂණ සපයන්නන් එක් කරන ජාත්‍යන්තර ලාභ නොලබන සංවිධානයක් වන Cloud Native Computing Foundation වෙත තාක්ෂණික දායකත්වයක් ලෙස පරිත්‍යාග කරන ලදී.

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

බහාලුම් විශාල සංඛ්යාවක් කළමනාකරණය කරන්න

දැන් අපි බලමු මේවා මොන වගේ බහාලුම්ද කියලා. මෙය එහි සම්පූර්ණ පරිසරය සහිත යෙදුමකි - ප්‍රධාන වශයෙන් වැඩසටහන රඳා පවතින පුස්තකාල. මේ සියල්ල ලේඛනාගාරයේ ඇසුරුම් කර ඇති අතර මෙහෙයුම් පද්ධතිය නොසලකා ධාවනය කළ හැකි රූපයක ස්වරූපයෙන් ඉදිරිපත් කර ඇත, පරීක්ෂා කර ඇත. නමුත් ගැටලුවක් තිබේ - ධාරක විශාල සංඛ්යාවක් මත බහාලුම් කළමනාකරණය කිරීම ඉතා අපහසු වේ. Kubernetes නිර්මාණය වූයේ එබැවිනි.

බහාලුම් රූපයක් යෙදුමක් සහ එහි පරායත්තතා නියෝජනය කරයි. යෙදුම, එහි පරායත්තතා සහ OS ගොනු පද්ධති රූපය රූපයේ විවිධ කොටස්වල, ඊනියා ස්ථරවල පිහිටා ඇත. විවිධ බහාලුම් සඳහා ස්ථර නැවත භාවිතා කළ හැකිය. උදාහරණයක් ලෙස, සමාගමක සියලුම යෙදුම් Ubuntu මූලික ස්ථරය භාවිතා කළ හැක. බහාලුම් ධාවනය කරන විට, ධාරකයේ තනි මූලික ස්ථරයක පිටපත් කිහිපයක් ගබඩා කිරීම අවශ්ය නොවේ. පින්තූර ගබඩා කිරීම සහ බෙදා හැරීම ප්‍රශස්ත කිරීමට මෙය ඔබට ඉඩ සලසයි.

අපිට කන්ටේනර් එකකින් ඇප්ලිකේෂන් එකක් ක්‍රියාත්මක කිරීමට අවශ්‍ය වූ විට, අවශ්‍ය ස්ථර එකිනෙක අධිස්ථාපනය කර උඩින් ගොනු පද්ධතියක් සෑදේ. පටිගත කිරීමේ තට්ටුවක් ඉහළින් තබා ඇති අතර, කන්ටේනරය නතර වූ විට එය ඉවත් කරනු ලැබේ. මෙම කන්ටේනරය ක්රියාත්මක වන විට, යෙදුම සෑම විටම වෙනස් කළ නොහැකි එකම පරිසරයක් ඇති බව සහතික කරයි. මෙය විවිධ සත්කාරක OS මත පරිසරයේ ප්‍රතිනිෂ්පාදනය සහතික කරයි. එය Ubuntu හෝ CentOS වේවා, පරිසරය සැමවිටම එක හා සමාන වනු ඇත. මීට අමතරව, Linux කර්නලය තුළට ගොඩනගා ඇති යාන්ත්‍රණ භාවිතයෙන් බහාලුම ධාරකයෙන් හුදකලා වේ. කන්ටේනරයක ඇති යෙදුම් ගොනු, ධාරකයේ ක්‍රියාවලි සහ අසල්වැසි බහාලුම් නොපෙනේ. ධාරක OS වෙතින් යෙදුම් මෙම හුදකලා කිරීම අතිරේක ආරක්ෂණ ස්ථරයක් සපයයි.

ධාරකයක බහාලුම් කළමනාකරණය කිරීමට බොහෝ මෙවලම් තිබේ. ඔවුන්ගෙන් වඩාත් ජනප්රිය වන්නේ ඩොකර් ය. බහාලුම්වල සම්පූර්ණ ජීවන චක්රය සැපයීමට එය ඔබට ඉඩ සලසයි. කෙසේ වෙතත්, එය එක් සත්කාරකයක් මත පමණක් ක්රියා කරයි. ඔබට බහු ධාරක හරහා බහාලුම් කළමනාකරණය කිරීමට අවශ්‍ය නම්, Docker හට ඉංජිනේරුවන්ට ජීවිතය අපායක් බවට පත් කළ හැක. Kubernetes නිර්මාණය වූයේ එබැවිනි.

Kubernetes සඳහා ඇති ඉල්ලුම නිශ්චිතවම හේතු වී ඇත්තේ බහු ධාරක මත බහාලුම් කණ්ඩායම් යම් ආකාරයක තනි ආයතනයක් ලෙස කළමනාකරණය කිරීමේ හැකියාව නිසාය. පද්ධතියේ ජනප්‍රියතාවය DevOps හෝ සංවර්ධන මෙහෙයුම් ගොඩනැගීමට අවස්ථාව ලබා දෙයි, මෙම DevOps ක්‍රියාවලි ක්‍රියාත්මක කිරීමට Kubernetes භාවිතා කරයි.

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

රූපය 1. Kubernetes ක්රියා කරන ආකාරය පිළිබඳ ක්රමානුරූප නිරූපණය

සම්පූර්ණ ස්වයංක්රීයකරණය

DevOps යනු මූලික වශයෙන් සංවර්ධන ක්‍රියාවලියේ ස්වයංක්‍රීයකරණයයි. දළ වශයෙන් කිවහොත්, සංවර්ධකයින් ගබඩාවට උඩුගත කරන ලද කේතය ලියයි. එවිට මෙම කේතය ස්වයංක්‍රීයව සියලුම පුස්තකාල සහිත කන්ටේනරයකට ස්වයංක්‍රීයව එකතු කර, පරීක්‍ෂා කර ඊළඟ අදියර - වේදිකාගත කිරීම සහ වහාම නිෂ්පාදනය වෙත ගෙන යා හැකිය.

Kubernetes සමඟ එක්ව, DevOps ඔබට මෙම ක්‍රියාවලිය ස්වයංක්‍රීය කිරීමට ඉඩ සලසයි, එවිට එය සංවර්ධකයින්ගේම සහභාගීත්වයකින් තොරව සිදු වේ. මේ හේතුවෙන්, ගොඩනැගීම සැලකිය යුතු ලෙස වේගවත් වේ, මන්ද සංවර්ධකයාට මෙය ඔහුගේ පරිගණකයේ කිරීමට අවශ්‍ය නැත - ඔහු හුදෙක් කේත කැබැල්ලක් ලියා, කේතය ගබඩාවට තල්ලු කරයි, ඉන්පසු නල මාර්ගය දියත් කරනු ලැබේ, එයට ක්‍රියාවලිය ඇතුළත් විය හැකිය. ගොඩනැගීම, පරීක්ෂා කිරීම සහ පෙරළීම. තවද මෙය සෑම කැපවීමකින්ම සිදු වේ, එබැවින් පරීක්ෂණ අඛණ්ඩව සිදු වේ.

ඒ අතරම, කන්ටේනරයක් භාවිතා කිරීමෙන් මෙම වැඩසටහනේ සම්පූර්ණ පරිසරයම එය පරීක්ෂා කරන ලද ආකාරයෙන්ම නිෂ්පාදනයට මුදා හරින බවට සහතික වීමට ඔබට ඉඩ සලසයි. එනම්, “පරීක්ෂණයේ සමහර අනුවාද තිබුණා, අනෙක් ඒවා නිෂ්පාදනයේ තිබුණා, නමුත් අපි ඒවා ස්ථාපනය කළ විට සියල්ල වැටුණා” වැනි ගැටළු ඇති නොවේ. අද සිට අපට ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය කෙරෙහි නැඹුරුවක් ඇත, එක් විශාල යෙදුමක් වෙනුවට කුඩා ඒවා සිය ගණනක් ඇති විට, ඒවා අතින් පරිපාලනය කිරීම සඳහා, විශාල සේවක කාර්ය මණ්ඩලයක් අවශ්‍ය වනු ඇත. අපි Kubernetes භාවිතා කරන්නේ එබැවිනි.

වාසි, වාසි, වාසි


අපි වේදිකාවක් ලෙස Kubernetes හි වාසි ගැන කතා කරන්නේ නම්, එය microservice ගෘහ නිර්මාණ ශිල්පය කළමනාකරණය කිරීමේ දෘෂ්ටි කෝණයෙන් සැලකිය යුතු වාසි ඇත.

  • බහු අනුරූ කළමනාකරණය. වැදගත්ම දෙය නම් බහු ධාරක හරහා බහාලුම් කළමනාකරණය කිරීමයි. වඩාත් වැදගත් දෙය නම්, තනි ආයතනයක් ලෙස බහාලුම්වල බහු යෙදුම් අනුරූ කළමනාකරණය කරන්න. මෙයට ස්තූතියි, ඉංජිනේරුවන් එක් එක් බහාලුම් ගැන කරදර විය යුතු නැත. එක් කන්ටේනරයක් කඩා වැටුණහොත්, Kubernetes මෙය දැක එය නැවත ආරම්භ කරයි.
  • පොකුරු ජාලය. Kubernetes සතුව තමන්ගේම ලිපින අවකාශයක් සහිත ඊනියා පොකුරු ජාලයක් ද ඇත. මෙයට ස්තූතියි, සෑම පොඩ් එකකටම තමන්ගේම ලිපිනයක් ඇත. උපපොඩ් යනු බහාලුම් සෘජුවම දියත් කරන ලද පොකුරක අවම ව්‍යුහාත්මක ඒකකය ලෙස වටහාගෙන ඇත. ඊට අමතරව, Kubernetes සතුව load balancer සහ Service Discovery ඒකාබද්ධ කරන ක්‍රියාකාරීත්වයක් ඇත. මෙය ඔබට අතින් IP ලිපින කළමනාකරණයෙන් මිදීමට සහ මෙම කාර්යය Kubernetes වෙත පැවරීමට ඉඩ සලසයි. ස්වයංක්‍රීය සෞඛ්‍ය පරීක්ෂාවන් ගැටළු හඳුනා ගැනීමට සහ වැඩ කරන කරල් වෙත ගමනාගමනය හරවා යැවීමට උපකාරී වේ.
  • වින්යාස කළමනාකරණය. යෙදුම් විශාල සංඛ්‍යාවක් කළමනාකරණය කරන විට, යෙදුම් වින්‍යාසය කළමනාකරණය කිරීම අපහසු වේ. මේ සඳහා Kubernetes සතුව විශේෂ ConfigMap සම්පත් ඇත. වින්‍යාසයන් මධ්‍යගතව ගබඩා කිරීමට සහ යෙදුම් ධාවනය කරන විට ඒවා කරල්වලට නිරාවරණය කිරීමට ඒවා ඔබට ඉඩ සලසයි. මෙම යාන්ත්‍රණය අවම වශයෙන් යෙදුම් අනුරූ දහයක් හෝ සියයක් තුළ වින්‍යාසයේ අනුකූලතාව සහතික කිරීමට අපට ඉඩ සලසයි.
  • ස්ථීර වෙළුම්. බහාලුම් නෛසර්ගිකව වෙනස් කළ නොහැකි අතර බහාලුම් නතර කළ විට, ගොනු පද්ධතියට ලියා ඇති සියලුම දත්ත විනාශ වේ. නමුත් සමහර යෙදුම් සෘජුවම තැටියේ දත්ත ගබඩා කරයි. මෙම ගැටළුව විසඳීම සඳහා, Kubernetes හට තැටි ගබඩා කළමණාකරණ ක්‍රියාකාරීත්වයක් ඇත - ස්ථිර වෙළුම්. මෙම යාන්ත්‍රණය දත්ත සඳහා බාහිර ගබඩාව භාවිතා කරන අතර ස්ථීර ගබඩා කිරීම, අවහිර කිරීම හෝ ගොනුව, බහාලුම්වලට මාරු කළ හැක. මෙම විසඳුම ඔබට සේවකයින්ගෙන් වෙන වෙනම දත්ත ගබඩා කිරීමට ඉඩ සලසයි, මෙම සේවකයින්ම බිඳ වැටුණහොත් ඔවුන්ව ඉතිරි කරයි.
  • ලෝඩ් බැලන්සර්. Kubernetes හි අපි Deployment, StatefulSet වැනි වියුක්ත ආයතන කළමනාකරණය කළත්, අවසානයේදී බහාලුම් සාමාන්‍ය අතථ්‍ය යන්ත්‍ර හෝ දෘඪාංග සේවාදායකයන් මත ධාවනය වේ. ඒවා පරිපූර්ණ නොවන අතර ඕනෑම වේලාවක වැටිය හැකිය. කුබර්නෙට්ස් මෙය දකින අතර අභ්‍යන්තර ගමනාගමනය වෙනත් අනුපිටපත් වෙත හරවා යවනු ඇත. නමුත් පිටතින් එන වාහන තදබදයට කුමක් කළ යුතුද? ඔබ එක් සේවකයෙකු වෙත ගමනාගමනය යොමු කළහොත්, එය බිඳ වැටුණහොත්, සේවාව ලබා ගත නොහැකි වනු ඇත. මෙම ගැටළුව විසඳීම සඳහා Kubernetes සතුව Load Balancer වැනි සේවාවන් තිබේ. ඒවා නිර්මාණය කර ඇත්තේ පොකුරේ සිටින සියලුම සේවකයින් සඳහා බාහිර වලාකුළු සමතුලිතයක් ස්වයංක්‍රීයව වින්‍යාස කිරීමට ය. මෙම බාහිර සමතුලිතකය කම්කරුවන් වෙත බාහිර ගමනාගමනය යොමු කරන අතර ඔවුන්ගේ තත්වයම නිරීක්ෂණය කරයි. එක් සේවකයෙකු හෝ වැඩි ගණනක් නොමැති නම්, ගමනාගමනය වෙනත් අය වෙත හරවා යවනු ලැබේ. මෙය ඔබට Kubernetes භාවිතයෙන් ඉතා ඉහලින් පවතින සේවාවන් නිර්මාණය කිරීමට ඉඩ සලසයි.

ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය ක්‍රියාත්මක කිරීමේදී Kubernetes වඩාත් හොඳින් ක්‍රියා කරයි. ක්‍රමය සම්භාව්‍ය ගෘහනිර්මාණ ශිල්පයට ක්‍රියාත්මක කළ හැකි නමුත් එය අර්ථ විරහිත ය. යෙදුමක් බහු අනුපිටපත් මත ක්‍රියා කළ නොහැකි නම්, කුබර්නෙටේස්හි හෝ නොඑසේ නම් එයින් සිදු වන වෙනස කුමක්ද?

විවෘත මූලාශ්‍ර Kubernetes


විවෘත මූලාශ්‍ර Kubernetes යනු විශිෂ්ට දෙයක්: මම එය ස්ථාපනය කළ අතර එය ක්‍රියා කරයි. ඔබට එය ඔබේම දෘඪාංග සේවාදායකයන් මත, ඔබේම යටිතල පහසුකම් මත යෙදවිය හැකිය, සියලුම යෙදුම් ක්‍රියාත්මක වන ස්වාමිවරුන් සහ කම්කරුවන් ස්ථාපනය කළ හැකිය. සහ වඩාත්ම වැදගත් දෙය නම්, මේ සියල්ල නොමිලේ. කෙසේ වෙතත්, සූක්ෂ්මතා ඇත.

  • පළමුවැන්න නම් මේ සියල්ල යෙදවීමට සහ සහාය දක්වන පරිපාලකයින් සහ ඉංජිනේරුවන්ගේ දැනුම හා පළපුරුද්ද සඳහා ඇති ඉල්ලුමයි. සේවාලාභියාට පොකුරේ ක්‍රියා කිරීමේ සම්පූර්ණ නිදහස ලැබෙන බැවින්, පොකුරේ ක්‍රියාකාරීත්වය සඳහා ඔහුම වගකිව යුතුය. තවද මෙහි ඇති සියල්ල බිඳ දැමීම ඉතා පහසුය.
  • දෙවැන්න ඒකාබද්ධතා නොමැතිකමයි. ඔබ ජනප්‍රිය අථත්‍යකරණ වේදිකාවක් නොමැතිව Kubernetes ධාවනය කරන්නේ නම්, ඔබට වැඩසටහනේ සියලුම ප්‍රතිලාභ නොලැබෙනු ඇත. Persistent Volumes සහ Load balancer සේවා භාවිතා කිරීම වැනි.

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

රූපය 2. k8s ගෘහ නිර්මාණ ශිල්පය

කුබර්නෙට්ස් වෙළෙන්දාගෙන්


වලාකුළු සපයන්නා සමඟ ඒකාබද්ධ කිරීම විකල්ප දෙකක් සපයයි:

  • පළමුව, පුද්ගලයෙකුට “ක්‍රෑට් පොකුර” බොත්තම ක්ලික් කර දැනටමත් වින්‍යාස කර ඇති සහ භාවිතයට සූදානම් කර ඇති පොකුරක් ලබා ගත හැක.
  • දෙවනුව, වෙළෙන්දා විසින්ම පොකුර ස්ථාපනය කර වලාකුළ සමඟ ඒකාබද්ධ කිරීම සකසයි.

කොහොමද මෙතන වෙන්නේ. පොකුර ආරම්භ කරන ඉංජිනේරුවා ඔහුට අවශ්‍ය සේවකයින් කොපමණද සහ කුමන පරාමිතීන් සමඟද යන්න නියම කරයි (උදාහරණයක් ලෙස, කම්කරුවන් 5 දෙනෙකු, එක් එක් CPU 10, 16 GB RAM සහ, 100 GB තැටි). ඉන් පසුව එය දැනටමත් පිහිටුවා ඇති පොකුරට ප්රවේශය ලබා ගනී. මෙම අවස්ථාවෙහිදී, භාරය දියත් කරන ලද සේවකයින් සම්පූර්ණයෙන්ම සේවාදායකයා වෙත මාරු කරනු ලැබේ, නමුත් සම්පූර්ණ කළමනාකරණ තලය විකුණුම්කරුගේ වගකීම යටතේ පවතී (සේවාව කළමනාකරණය කරන ලද සේවා ආකෘතියට අනුව සපයනු ලැබේ නම්).

කෙසේ වෙතත්, මෙම යෝජනා ක්රමය එහි අවාසි ඇත. කළමනාකරණ තලය වෙළෙන්දා සමඟ පවතින නිසා, වෙළෙන්දා සේවාදායකයාට සම්පූර්ණ ප්‍රවේශය ලබා නොදෙන අතර, මෙය Kubernetes සමඟ වැඩ කිරීමේදී නම්‍යශීලී බව අඩු කරයි. සමහර විට එය සිදුවන්නේ සේවාදායකයෙකුට Kubernetes වෙත යම් නිශ්චිත ක්‍රියාකාරීත්වයක් එක් කිරීමට අවශ්‍ය වීමයි, උදාහරණයක් ලෙස, LDAP හරහා සත්‍යාපනය, නමුත් කළමනාකරණ තල වින්‍යාසය මෙයට ඉඩ නොදේ.

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

රූපය 3. වලාකුළු සපයන්නෙකුගෙන් කුබර්නෙටස් පොකුරක් සඳහා උදාහරණය

තෝරා ගත යුතු දේ: විවෘත මූලාශ්‍රය හෝ වෙළෙන්දා


ඉතින්, Kubernetes විවෘත මූලාශ්‍රය හෝ විකුණුම්කරු විශේෂිතද? අපි විවෘත මූලාශ්‍ර Kubernetes ගත්තොත්, පරිශීලකයා එය සමඟ ඔහුට අවශ්‍ය දේ කරයි. නමුත් පාදයට වෙඩි තැබීමේ විශාල අවස්ථාවක් තිබේ. වෙළෙන්දා සමඟ එය වඩාත් අපහසු වේ, මන්ද සෑම දෙයක්ම සිතා බලා සමාගම සඳහා වින්යාස කර ඇත. විවෘත මූලාශ්‍ර Kubernetes හි විශාලතම අවාසිය නම් විශේෂඥයින් සඳහා වන අවශ්‍යතාවයයි. විකුණුම්කරු විකල්පයක් සමඟ, සමාගම මෙම හිසරදයෙන් නිදහස් වී ඇත, නමුත් එහි විශේෂඥයින්ට හෝ විකුණුම්කරුට ගෙවිය යුතුද යන්න තීරණය කිරීමට සිදුවනු ඇත.

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

Kubernetes: විවෘත මූලාශ්‍රය එදිරිව වෙළෙන්දා-විශේෂිත

හොඳයි, වාසි පැහැදිලිය, අවාසි ද දනී. එක් දෙයක් නියත ය: Kubernetes බොහෝ බහාලුම් කළමනාකරණය ස්වයංක්‍රීය කිරීම මගින් ගැටලු රාශියක් විසඳයි. සහ තෝරාගත යුත්තේ කුමක්ද, විවෘත මූලාශ්‍රය හෝ වෙළෙන්දා - සෑම කෙනෙකුම තමන්ගේම තීරණයක් ගනී.

#CloudMTS සපයන්නාගේ බහාලුම් සේවාවේ ප්‍රමුඛ ගෘහ නිර්මාණ ශිල්පී දිමිත්‍රි ක්‍රස්නොව් විසින් ලිපිය සකස් කරන ලදී.

මූලාශ්රය: www.habr.com

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