Kubernetes පොකුරු සම්පත් අධීක්ෂණය

Kubernetes පොකුරු සම්පත් අධීක්ෂණය

මම Kube Eagle නිර්මාණය කළා - Prometheus අපනයනකරුවෙක්. එය කුඩා හා මධ්‍යම ප්‍රමාණයේ පොකුරු වල සම්පත් හොඳින් අවබෝධ කර ගැනීමට උපකාරී වන සිසිල් දෙයක් බවට පත් විය. අවසානයේදී, මම නිවැරදි යන්ත්‍ර වර්ග තෝරාගෙන වැඩ බර සඳහා යෙදුම් සම්පත් සීමාවන් වින්‍යාස කළ නිසා මම ඩොලර් සිය ගණනක් ඉතිරි කළෙමි.

මම ඔබට ප්රතිලාභ ගැන කියන්නම් කුබේ රාජාලියා, නමුත් පළමුව මම කලබලයට හේතුව කුමක්ද සහ උසස් තත්ත්වයේ අධීක්ෂණය අවශ්‍ය වූයේ මන්දැයි පැහැදිලි කරමි.

මම නෝඩ් 4-50 ක පොකුරු කිහිපයක් කළමනාකරණය කළෙමි. සෑම පොකුරකම ක්ෂුද්‍ර සේවා සහ යෙදුම් 200ක් දක්වා අඩංගු වේ. පවතින දෘඪාංග වඩා හොඳින් භාවිතා කිරීම සඳහා, බොහෝ යෙදවීම් පිපිරෙන RAM සහ CPU සම්පත් සමඟ වින්‍යාස කර ඇත. මේ ආකාරයෙන්, අවශ්‍ය නම් පොඩ්ස් හට පවතින සම්පත් ලබා ගත හැකි අතර, ඒ සමඟම මෙම නෝඩයේ වෙනත් යෙදුම් වලට බාධා නොකරන්න. හොඳයි, එය විශිෂ්ටයි නේද?

තවද පොකුර සාපේක්ෂ වශයෙන් අඩු CPU (8%) සහ RAM (40%) පරිභෝජනය කළද, නෝඩයේ ඇති මතකයට වඩා වැඩි මතකයක් වෙන් කිරීමට උත්සාහ කරන විට කරල් පෙරීම සම්බන්ධයෙන් අපට නිරන්තරයෙන් ගැටළු ඇති විය. එවකට අපට Kubernetes සම්පත් නිරීක්ෂණය කිරීම සඳහා තිබුණේ එක උපකරණ පුවරුවක් පමණි. මෙවැනි:

Kubernetes පොකුරු සම්පත් අධීක්ෂණය
ග්‍රැෆනා උපකරණ පුවරුව cAdvisor මෙට්‍රික්ස් සමඟ පමණි

එවැනි පුවරුවක් සමඟ, මතකය සහ CPU ගොඩක් අනුභව කරන නෝඩ් දැකීම ගැටළුවක් නොවේ. ගැටලුව වන්නේ හේතුව කුමක්දැයි සොයා බැලීමයි. කරල් නියමිත ස්ථානයේ තබා ගැනීම සඳහා, කෙනෙකුට ඇත්ත වශයෙන්ම සියලුම කරල් මත සහතික කළ හැකි සම්පත් පිහිටුවිය හැකිය (ඉල්ලන ලද සම්පත් සීමාවට සමාන). නමුත් මෙය දෘඪාංගයේ බුද්ධිමත්ම භාවිතය නොවේ. පොකුරේ මතකය ගිගාබයිට් සිය ගණනක් තිබූ අතර සමහර නෝඩ් කුසගින්නෙන් පෙළෙන අතර අනෙක් ඒවා 4-10 GB සංචිතයේ ඉතිරිව තිබුණි.

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

වඩාත්ම නිදහස් සම්පත් ඇති සහ ඉල්ලීම් කොන්දේසි තෘප්තිමත් කරන නෝඩය පොඩ් සඳහා තෝරා ගන්නා ලදී. නෝඩ් වල ඉල්ලුම් කරන ලද සම්පත් සත්‍ය භාවිතයට නොගැලපෙන බව අපට පෙනී ගිය අතර, Kube Eagle සහ එහි සම්පත් අධීක්ෂණ හැකියාවන් ගලවා ගැනීමට පැමිණියේ මෙහිදීය.

මා සතුව Kubernetes පොකුරු සියල්ලම පාහේ නිරීක්ෂණය කර ඇත නෝඩ් අපනයනකරු и Kube State Metrics. Node Exporter I/O සහ disk, CPU, සහ RAM භාවිතය පිළිබඳ සංඛ්‍යාලේඛන සපයන අතර, Kube State Metrics මඟින් ඉල්ලීම් සහ CPU සහ මතක සම්පත් සීමාවන් වැනි Kubernetes වස්තු ප්‍රමිතික පෙන්වයි.

අපි ග්‍රැෆානා හි ඉල්ලීම් සහ සීමා ප්‍රමිතික සමඟ භාවිත ප්‍රමිතික ඒකාබද්ධ කළ යුතු අතර, එවිට අපට ගැටලුව පිළිබඳ සියලු තොරතුරු ලැබෙනු ඇත. මෙය සරල බව පෙනේ, නමුත් මෙවලම් දෙක ඇත්ත වශයෙන්ම ලේබල වෙනස් ලෙස නම් කරයි, සහ සමහර ප්‍රමිතිකවල පාරදත්ත ලේබල කිසිවක් නොමැත. Kube Eagle සෑම දෙයක්ම තනිවම කරන අතර පැනලය මේ ආකාරයෙන් පෙනේ:

Kubernetes පොකුරු සම්පත් අධීක්ෂණය

Kubernetes පොකුරු සම්පත් අධීක්ෂණය
Kube Eagle උපකරණ පුවරුව

සම්පත් සමඟ බොහෝ ගැටලු විසඳීමට සහ උපකරණ සුරැකීමට අපට හැකි විය:

  1. සමහර සංවර්ධකයින් ක්ෂුද්‍ර සේවා සඳහා කොපමණ සම්පත් අවශ්‍ය දැයි දැන සිටියේ නැත (හෝ සරලව කරදර නොවීය). සම්පත් සඳහා වැරදි ඉල්ලීම් සොයා ගැනීමට අපට ක්‍රමයක් නොතිබුණි - මේ සඳහා අපි පරිභෝජනය සහ ඉල්ලීම් සහ සීමාවන් දැන සිටිය යුතුය. දැන් ඔවුන් Prometheus metrics දකියි, සත්‍ය භාවිතය නිරීක්ෂණය කරයි සහ ඉල්ලීම් සහ සීමාවන් සීරුමාරු කරයි.
  2. JVM යෙදුම් වලට හැසිරවිය හැකි තරම් RAM ප්‍රමාණයක් ගනී. කසළ එකතු කරන්නා මතකය මුදා හරින්නේ 75% ට වඩා භාවිතා කළ විට පමණි. බොහෝ සේවාවන්හි පිපිරෙන මතකයක් ඇති බැවින්, එය සැමවිටම JVM විසින් අත්පත් කරගෙන ඇත. ඒ නිසා මේ සියලුම ජාවා සේවාවන් බලාපොරොත්තු වූවාට වඩා බොහෝ RAM ප්‍රමාණයක් කනවා.
  3. සමහර යෙදුම් මතකය ඕනෑවට වඩා ඉල්ලා ඇති අතර, Kubernetes උපලේඛකයා මෙම නෝඩ් වෙනත් යෙදුම් වලට ලබා දුන්නේ නැත, ඇත්ත වශයෙන්ම ඒවා අනෙකුත් නෝඩ් වලට වඩා නිදහස් වුවද. එක් සංවර්ධකයෙක් අහම්බෙන් ඉල්ලීමෙහි අමතර අංකයක් එකතු කර විශාල RAM කැබැල්ලක් ලබා ගත්තේය: 20 වෙනුවට 2 GB. කිසිවෙකු එය දුටුවේ නැත. යෙදුමේ අනුපිටපත් 3ක් තිබූ නිසා නෝඩ් 3ක් පමණ බලපෑවේය.
  4. අපි සම්පත් සීමාවන් හඳුන්වා දුන්නා, නිවැරදි ඉල්ලීම් සමඟ නැවත කාලසටහන්ගත කර ඇති අතර, සියලු නෝඩ් හරහා දෘඪාංග භාවිතයේ කදිම ශේෂයක් ලබා ගත්තෙමු. නෝඩ් කිහිපයක් සම්පූර්ණයෙන්ම වසා දැමිය හැකිය. ඊට පස්සේ අපි දැක්කා අපි ළඟ තියෙන්නේ වැරදි යන්ත්‍ර (CPU oriented, memory oriented නොවේ). අපි වර්ගය වෙනස් කර තවත් නෝඩ් කිහිපයක් මකා දැමුවෙමු.

ප්රතිඵල

පොකුරේ පිපිරෙන සම්පත් සමඟින්, ඔබ පවතින දෘඪාංග වඩාත් කාර්යක්ෂමව භාවිතා කරයි, නමුත් Kubernetes උපලේඛකයා සම්පත් සඳහා වන ඉල්ලීම් මත පදනම්ව කරල් උපලේඛනගත කරයි, සහ මෙය පිරී ඇත. එක ගලකින් කුරුල්ලන් දෙදෙනෙකු මරා දැමීමට: ගැටළු වළක්වා ගැනීමට සහ සම්පත් උපරිම ලෙස භාවිතා කිරීමට, ඔබට හොඳ නිරීක්ෂණයක් අවශ්ය වේ. එය ප්රයෝජනවත් වනු ඇත්තේ එබැවිනි කුබේ රාජාලියා (Prometheus exporter සහ Grafana උපකරණ පුවරුව).

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

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