סקירה כללית על התאמה אוטומטית לעומס

‫Kf משתמש ב-Kubernetes Horizontal Pod Autoscaler ‏(HPA) כדי לשנות באופן אוטומטי את מספר ה-Pods באפליקציה. כשמפעילים התאמה אוטומטית לעומס (automatic scaling) באפליקציה, נוצר אובייקט HPA והוא משויך לאובייקט האפליקציה. לאחר מכן, המערכת מחשבת באופן דינמי את קנה המידה של היעד ומגדירה אותו לאפליקציה.

איך מתבצעת התאמה של Kf

מספר ה-Pods שנפרסו עבור אפליקציית Kf נשלט על ידי השדה replica של אובייקט הפריסה הבסיסי שלה. מספר העותקים המשוכפלים של הפריסה מוגדר בשדה replicas של האפליקציה.

אפשר לשנות את גודל התמונה באופן ידני באמצעות הפקודה kf scale. הפקודה הזו מושבתת כשמופעלת התכונה 'התאמה אוטומטית לעומס (automatic scaling)', כדי למנוע התנגשויות בין יעדים.

איך פועל הכלי Kubernetes Horizontal Pod Autoscaler

ה-Horizontal Pod Autoscaler‏ (HPA) מיושם כמשאב Kubernetes API (אובייקט ה-HPA) ולולאת בקרה (בקר ה-HPA) שמחשבת באופן תקופתי את מספר הרפליקות הרצוי על סמך ניצול המשאבים הנוכחי. לאחר מכן, בקר ה-HPA מעביר את המספר לאובייקט היעד שמטמיע את משאב המשנה Scale. השינוי בפועל של קנה המידה מוקצה לאובייקט הבסיסי ולבקר שלו. מידע נוסף זמין במאמרי העזרה של Kubernetes.

איך המידרוג האוטומטי מחליט מתי לשנות את הגודל

מעת לעת, בקר ה-HPA שולח שאילתות לגבי ניצול המשאבים בהשוואה למדדים שצוינו בכל הגדרה של HorizontalPodAutoscaler. הבקר מקבל את המדדים מ-Resource Metrics API לכל Pod. לאחר מכן, בקר המשאבים מחשב את ערך הניצול כאחוז מתוך בקשת המשאבים המקבילה. לאחר מכן, המערכת מחשבת את מספר הרפליקות הרצוי על סמך היחס בין האחוז הנוכחי לאחוז הרצוי. מידע נוסף על אלגוריתם ההתאמה האוטומטית לעומס זמין במסמכי Kubernetes.

מדדים

ב-Kf נעשה שימוש ב-HPA v1 שתומך רק ב-CPU כמדד היעד.

איך פועל הכלי Kubernetes Horizontal Autoscaler עם Kf

כשהתכונה 'התאמה אוטומטית לעומס' מופעלת באפליקציית Kf, בקר Kf יוצר אובייקט HPA על סמך מגבלות וכללי שינוי הגודל שצוינו באפליקציה. לאחר מכן, בקר HPA מאחזר את המפרטים מאובייקט HPA ומשנה את גודל האפליקציה בהתאם.

אובייקט ה-HPA יימחק אם ההתאמה האוטומטית לעומס מושבתת או אם האפליקציה המתאימה נמחקת.