කූබර්නෙටීස් (Kubernetes) පරිසරයේ පවතින Horizontal Pod Autoscaler (HPA) ක්රමය, CPU හෝ memory භාවිතය අනුව පෝඩ් ගණන ස්වයංක්රීයව වැඩි හෝ අඩු කරනවා. මේ ලිපියෙන් අපි KIND (Kubernetes IN Docker) ක්ලස්ටරයක් තුළ Apache වෙබ් සේවාදායකයක් සකස් කර, HPA හරහා ස්කේල් කිරීමේ සම්පූර්ණ ක්රියා පටිපාටිය පියවරෙන් පියවර ගෙන යමු.
පළමුව නේම්ස්පේස් (Namespace) සකසමු
කූබර්නෙටීස් සම්පත් වෙන වෙනම ගබඩා කිරීම සඳහා නේම්ස්පේස් භාවිතා කරයි. apache නාමයෙන් නව නේම්ස්පේස් එකක් සාදලා, ඉදිරි සැකසුම් ඒක තුළම පවත්වාගන්නෙමු.
ඩිප්ලොයිමන්ට් (Deployment) හා සම්පත් (Resources) නියම කිරීම
Apache ඩිප්ලොයිමන්ට් එක තුළ පෝඩ් 3ක් ඇරඹුනවා. CPU ඉල්ලුම 100m, සීමාව 200m ලෙස, memory ඉල්ලුම 100Mi, සීමාව 250Mi ලෙස සකස් කරලා. HPA සදහා මෙම ඉල්ලුම්/සීමා අගයන් මූලික පදනමක් වශයෙන් භාවිතා වේ.
සේවාව (Service) එක නිර්මාණය
ClusterIP වර්ගයේ සේවාවක් නිර්මාණය කරලා, Apache පෝඩ් වලට 80 වරාය (port) මගින් පිවිසුම් ලබාදෙයි. මෙය අභ්යන්තර අයදුම්කරුවන්ට ස්ථායි IP එකක් ලබාදෙයි.
Metrics Server ස්ථාපනය සහ පරීක්ෂා
HPA ක්රියාත්මක වීමට Metrics Server අවශ්ය. kubectl top nodes -n apache සහ kubectl top pods -n apache විධාන ධාවනය කරලා CPU, memory දත්ත පෙන්වනවාද කියලා බලමු. දත්ත පෙන්වන්නේ නම්, Metrics Server සාර්ථකයි.
Horizontal Pod Autoscaler (HPA) සැකසීම
HPA yaml ගොනුවේ scaleTargetRef ලෙස Apache ඩිප්ලොයිමන්ට් එක සලකා, කුමන පෝඩ් ගණනක් (min 2, max 10) තබාගත යුතුද කියලා නියම කරලා. CPU භාවිතය 50% ඉක්මවන විට, memory භාවිතය 70% ඉක්මවන විට ස්කේල් වීමට සකස් කරලා. ඉහළ හා පහළ ස්කේල් වීමේ හැසිරීම් (behavior) නියම කරලා, අතිශයින් වේගවත් උත්තරදීමක් ලබාදෙයි.
ලෝඩ් ජනනය (Load Generation)
ඉදිරිපත් කිරීමේදී, while true; do curl -s http://localhost:8000 > /dev/null; done වැනි කමන්ඩ් එකක් ධාවනය කරලා, පෝඩ් වෙත අඛණ්ඩ HTTP ඉල්ලීම් යවනවා. මෙයින් CPU භාවිතය වැඩිවීමෙන් HPA ස්වයංක්රීයව පෝඩ් ගණන වැඩි කරනවා දැකගත හැක.
ස්කේල් කිරීමේ නිරීක්ෂණය
kubectl get hpa -w සහ kubectl get pods -w විධාන භාවිතා කරලා, HPA තත්වය සහ පෝඩ් නිර්මාණ/ඉවත් වීම රියල් ටයිම් එකේ නරඹන්න. CPU utilization පර්ශතය HPA සකස් කළ target අගයට සමීප වන තුරු පෝඩ් ගණන ස්වයංක්රීයව වෙනස් වනවා.
ශ්රී ලංකාවට ඇති වැදගත්කම
- දෙදිනක පරිසරයක් තුළ DevOps පුහුණුව ලබා ගත හැකි අතර, විශ්ව විද්යාල සිසුන්ට කූබර්නෙටීස් පදනම් කරගැනීමට අවස්ථාව ලැබේ.
- ස්ථානීය IT සමාගම්ට පරිසර-මිතුරා, සම්පත්-කාර්යක්ෂම ක්ලවුඩ් නියෝජිතයන් නිර්මාණය කර ගත හැක.
- Apache වැනි ජනප්රිය වෙබ් සේවාදායකය HPA සමඟ ක්රියාත්මක කිරීමෙන්, වෙබ් යෙදුම් පරිමාණය ඉහළ යාමට අවශ්ය ආකාරය තේරුම් ගත හැක.
- Metrics Server භාවිතයෙන් සම්පත් භාවිතය නිරීක්ෂණය කිරීම, පද්ධති පරිපාලනයේ නව අත්දැකීම් ලබාදේ.
අවසන් වශයෙන්, KIND මත HPA සැකසීම සරල වුවද, නවතම කූබර්නෙටීස් හැකියාවන් අත්හදා බැලීමට ඉතා ප්රයෝජනවත් වේ. ඔබේ දේශීය ව්යාපාරය හෝ පර්යේෂණ ව්යාපෘතිය සඳහා මෙවැනි ස්කේල් කළ හැකි පරිසරයක් සකස් කරලා, ඉදිරියේ තවත් විශාල පරිමාණය සඳහා පූර්ණ සූදානමක් ලබාගන්න.