שינוי קנה מידה על סמך קיבולת ההגשה של איזון העומסים

במאמר הזה מוסבר איך לבצע התאמה לעומס של קבוצת מופעי מכונה מנוהלים (MIG) על סמך קיבולת ההגשה של מאזן עומסים של אפליקציות (ALB) חיצוני או מאזן עומסים של אפליקציות (ALB) פנימי. המשמעות היא שהתאמה אוטומטית לעומס מוסיפה או מסירה מכונות וירטואליות בקבוצה כשהמאזן של עומס העבודה מציין שהקבוצה הגיעה לחלק ניתן להגדרה מהקיבולת המלאה שלה, כאשר הקיבולת המלאה מוגדרת על ידי קיבולת היעד של מצב האיזון שנבחר של קבוצת מופעי השרת העורפי.

אפשר גם לשנות את גודל ה-MIG על סמך ניצול המעבד או על סמך מדדים של Monitoring.

מגבלות

אתם יכולים להגדיר התאמה אוטומטית לעומס של קבוצת מופעי מכונה מנוהלים על סמך קיבולת ההגשה של מאזן עומסים חיצוני של אפליקציות (ALB) ושל מאזן עומסים פנימי של אפליקציות (ALB). אין תמיכה בסוגים אחרים של מאזני עומסים.

לפני שמתחילים

  • בודקים את המגבלות של שינוי הגודל האוטומטי.
  • מידע נוסף על קנה מידה אוטומטי
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

שינוי גודל על סמך קיבולת ההגשה של איזון עומסים ב-HTTP(S)

‫Compute Engine מספק תמיכה באיזון עומסים בתוך קבוצות המופעים. אפשר להשתמש בהתאמה אוטומטית לעומס (autoscaling) בשילוב עם איזון עומסים על ידי הגדרת מידרוג אוטומטי שמתאים את עצמו לעומס של המכונות.

מאזן עומסים חיצוני או פנימי מסוג HTTP(S) מפזר בקשות לשירותים עורפיים בהתאם למיפוי ה-URL שלו. מאזן העומסים יכול לכלול שירותים לקצה העורפי, שכל אחד מהם תומך בקצה העורפי של קבוצת מכונות או בקצה העורפי של קבוצת נקודות קצה ברשת (NEG). כשבק-אנד הוא קבוצת מופעים, מאזן העומסים מסוג HTTP(S) מציע שני מצבי איזון: UTILIZATION ו-RATE. עם UTILIZATION, אפשר לציין יעד מקסימלי לניצול הממוצע של העורף האחורי של מופעים בקבוצת המופעים. ב-RATE, צריך לציין מספר יעד של בקשות בשנייה על בסיס כל מופע או על בסיס כל קבוצה. (רק קבוצות של מופעים אזוריים תומכות בהגדרת קצב מקסימלי לכל הקבוצה. קבוצות מנוהלות של מופעי מכונה אזוריים לא תומכות בהגדרת קצב מקסימלי לכל קבוצה.)

מצב האיזון וקיבולת היעד שאתם מציינים מגדירים את התנאים שבהם Cloud de Confiance קובע מתי מכונת VM בעורף מלאה. Cloud de Confiance מנסה לשלוח תעבורה למכונות VM תקינות שיש להן קיבולת שנותרה. אם כל המכונות הווירטואליות כבר בקיבולת מלאה, חורגים משיעור הניצול או מהקצב של היעד.

כשמצרפים מידרוג אוטומטי לקצה עורפי של קבוצת מופעי מכונה מנוהלים של מאזן עומסים מסוג HTTP(S), המידרוג האוטומטי משנה את גודל קבוצת מופעי המכונה המנוהלים כדי לשמור על חלק מקיבולת ההגשה של איזון העומסים.

לדוגמה, נניח שקיבולת ההגשה של איזון העומסים של קבוצת מכונות מנוהלות מוגדרת כ-100 בקשות לשנייה לכל מכונה. אם יוצרים מידרוג אוטומטי עם מדיניות איזון עומסים מסוג HTTP(S) ומגדירים אותו לשמירה על רמת ניצול יעד של 0.8 או 80%, המידרוג האוטומטי מוסיף או מסיר מכונות מקבוצת מופעי מכונה מנוהלים כדי לשמור על 80% מיכולת ההגשה, או 80 בקשות לשנייה לכל מכונה.

בתרשים הבא מוצגות האינטראקציות בין התכונה לשינוי גודל אוטומטי לבין קבוצת מופעים מנוהלת ושירות backend:

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

הגדרות רלוונטיות של איזון עומסים

אפשר להגדיר אחת משלוש אפשרויות לקיבולת ההצגה של איזון העומסים. כשיוצרים את ה-backend בפעם הראשונה, אפשר לבחור בין ניצול מקסימלי של ה-backend, מספר מקסימלי של בקשות לשנייה לכל מופע או מספר מקסימלי של בקשות לשנייה לכל הקבוצה. התכונה 'שינוי גודל אוטומטי' פועלת רק עם ההגדרות maximum backend utilization ו-maximum requests per second/instance, כי אפשר לשלוט בערך של ההגדרות האלה על ידי הוספה או הסרה של מופעים. לדוגמה, אם הגדרתם קצה עורפי לטיפול ב-10 בקשות לשנייה לכל מופע, והמערכת להתאמה אוטומטית של משאבים מוגדרת לשמירה על 80% מהקצב הזה, אז המערכת יכולה להוסיף או להסיר מופעים כשהבקשות לשנייה לכל מופע משתנות.

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

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

הפעלת התאמה אוטומטית לעומס על סמך קיבולת ההגשה של איזון העומסים

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

המסוף

  1. נכנסים לדף Instance groups במסוף Cloud de Confiance .

    כניסה לדף Instance groups

  2. אם יש לכם קבוצת מופעים, בוחרים אותה ולוחצים על עריכה. אם אין לכם קבוצת מופעים, לוחצים על יצירת קבוצת מופעים.
  3. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  4. ברשימה Autoscaling mode (מצב שינוי גודל אוטומטי), מוודאים שהאפשרות On: add and remove instances to the group (מופעל: הוספה והסרה של מופעים לקבוצה) מסומנת.
  5. מציינים את המספר המינימלי והמקסימלי של מופעים שרוצים שמנגנון ההתאמה האוטומטית לעומס ייצור בקבוצה הזו.
  6. בקטע אותות של שינוי גודל אוטומטי, לוחצים על הוספת אות.
  7. מגדירים את סוג האות לשימוש באיזון עומסים של HTTP.
  8. מזינים את הערך של ניצול איזון העומסים של יעד HTTP באחוזים. לדוגמה, כדי להגדיר ניצול של 60% של איזון עומסים מסוג HTTP, מזינים 60.

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

  10. שומרים את השינויים.

gcloud

כדי להפעיל קנה מידה אוטומטי שמתבסס על קיבולת ההצגה, משתמשים בפקודת המשנה set-autoscaling. לדוגמה, הפקודה הבאה יוצרת מידרוג אוטומטי שמגדיל או מקטין את קבוצת מופעי מכונה מנוהלים כדי לשמור על 60% מיכולת ההצגה. כשיוצרים קנה מידה אוטומטי, צריך להשתמש גם בפרמטר --max-num-replicas בנוסף לפרמטר --target-load-balancing-utilization:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-load-balancing-utilization 0.6 \
    --cool-down-period 90 \
    --stabilization-period 240

אפשר להגדיר את הדגלים הבאים כדי לשלוט בהתאמה אוטומטית לעומס:

  • אפשר להשתמש בדגל --cool-down-period כדי להגדיר את תקופת האתחול, שמציינת למנגנון לשינוי גודל המכונה כמה זמן לוקח לאפליקציה להתחיל לפעול. הגדרת תקופת אתחול מדויקת משפרת את ההחלטות של הכלי לשינוי גודל אוטומטי. לדוגמה, כשמבצעים הגדלה, הכלי להתאמת קנה מידה אוטומטית מתעלם מנתונים של מכונות וירטואליות שעדיין נמצאות בתהליך אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת האתחול שמוגדרת כברירת מחדל היא 60 שניות.
  • אפשר להשתמש בדגל --stabilization-period כדי להגדיר את תקופת הייצוב, שקובעת את משך הזמן שבו קבוצת ה-MIG תצטמצם. תקופת ייצוב קצרה יותר מצביעה על מחיקה מהירה יותר של מכונות וירטואליות לצורך הגדלה. הערך צריך להיות בין 0 ל-3,600 שניות. ערך ברירת המחדל הוא 600 שניות. מידע נוסף זמין במאמר בנושא שיטות מומלצות לתקופת ייצוב.

כדי לוודא שהקצאת המשאבים הדינמית נוצרה בהצלחה, משתמשים בפקודת המשנה instance-groups managed describe:

gcloud compute instance-groups managed describe example-managed-instance-group

בחומרי העזר של gcloud תוכלו למצוא את רשימת הפקודות והדגלים של gcloud.

REST

כדי ליצור קנה מידה אוטומטי, משתמשים ב-method‏ autoscalers.insert עבור MIG אזורי או ב-method‏ regionAutoscalers.insert עבור MIG אזורי.

בדוגמה הבאה נוצרת קבוצת ניהול מופעים (MIG) עם קנה מידה אוטומטי אזורי:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers

גוף הבקשה צריך להכיל את השדות name, target ו-autoscalingPolicy. צריך להגדיר את autoscalingPolicy כ-loadBalancingUtilization.

אופציונלי: מגדירים את השדות הבאים כדי לשלוט בהתאמה אוטומטית לעומס:

  • אפשר להשתמש בשדה coolDownPeriodSec כדי להגדיר את תקופת האתחול, שמציינת למנגנון לשינוי גודל הקיבולת האוטומטי כמה זמן לוקח לאתחל את האפליקציה. הגדרת תקופת אתחול מדויקת משפרת את ההחלטות של הכלי לשינוי גודל אוטומטי. לדוגמה, כשמבצעים הגדלה, הכלי להתאמת קנה מידה אוטומטית מתעלם מנתונים של מכונות וירטואליות שעדיין נמצאות בתהליך אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת האתחול שמוגדרת כברירת מחדל היא 60 שניות.
  • אפשר להשתמש בשדה stabilizationPeriodSec כדי להגדיר את תקופת הייצוב, שקובעת את משך הזמן שבו ה-MIG יצטמצם. תקופת ייצוב קצרה יותר מצביעה על מחיקה מהירה יותר של מכונות וירטואליות לצורך הגדלה. הערך צריך להיות בין 0 ל-3,600 שניות. ערך ברירת המחדל הוא 600 שניות. מידע נוסף זמין במאמר בנושא שיטות מומלצות לתקופת ייצוב.
{
  "name": "example-autoscaler",
  "target": "zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 20,
    "loadBalancingUtilization": {
      "utilizationTarget": 0.8
    },
    "coolDownPeriodSec": 90,
    "stabilizationPeriodSec": 240
  }
}

למידע נוסף על הפעלת התאמה אוטומטית לעומס על סמך קיבולת ההגשה של איזון העומסים, אפשר לעיין במדריך התאמה אוטומטית לעומס גלובלית של שירות אינטרנט ב-Compute Engine.

המאמרים הבאים