שינוי קנה מידה על סמך מדדי מעקב

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

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

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

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

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

מגבלות

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

  • אפשר להגדיר התאמה אוטומטית לעומס על סמך עד 5 מדדים של Monitoring לכל MIG.
  • אפשר להגדיר שינוי גודל אוטומטי על סמך מדדים עם סוגי הערכים INT64 או DOUBLE בלבד. אין תמיכה בסוגי ערכים אחרים.
  • אי אפשר להגדיר את אותו מדד יותר מפעם אחת במדיניות של שינוי גודל אוטומטי.

הגדרת התאמה אוטומטית לעומס על סמך מדדים של Monitoring

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

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

    הכלי לשינוי גודל אוטומטי מוסיף מכונות וירטואליות ומסיר אותן כדי לשמור על יעד ניצול.

  • הקצאת מופע יחיד: אם רוצים לבצע התאמה אוטומטית של נפח העבודה על סמך כמות העבודה שזמינה להקצאה לכל מכונה וירטואלית, מגדירים הקצאת מופע יחיד. ההקצאה של מופע יחיד שאתם מציינים מייצגת את כמות העבודה שאתם מצפים שכל מכונה וירטואלית תבצע. הכלי להתאמת קנה מידה אוטומטית מחלק את ערך המדד בערך ההקצאה של מופע יחיד כדי לחשב כמה מכונות וירטואליות נדרשות. לדוגמה, אם ערך המדד הוא 100 וההקצאה של מופע יחיד היא 5, אז שירות ההתאמה האוטומטית של קנה המידה יוצר 20 מכונות וירטואליות ב-MIG. המדד הזה שימושי למדדים שמשקפים את כמות העבודה, כמו אורך התור של Pub/Sub או מספר משימות האצווה. הקצאה של מופע יחיד לא חלה על מדדים שמגיעים מכל מכונה וירטואלית. בתרשים הבא מוצג היחס הפרופורציונלי בין ערך המדד לבין מספר המכונות הווירטואליות כשמשתמשים בהקצאה של מופע יחיד.

    הקשר הפרופורציונלי בין ערך המדד לבין מספר המקרים.

שינוי קנה מידה אוטומטי כדי לשמור על מדד בערך יעד

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

  • אם המדד מגיע מכל מכונה וירטואלית ב-MIG, המערכת לשינוי גודל אוטומטי מחשבת את הערך הממוצע של המדד בכל המכונות הווירטואליות ב-MIG ומשווה אותו ליעד הניצול. לדוגמה, אם רוצים להגדיר התאמה אוטומטית לעומס באמצעות מדד tcp_connections שמציג את מספר חיבורי ה-TCP במכונה וירטואלית, המידרוג האוטומטי מחשב את מספר חיבורי ה-TCP הממוצע בכל המכונות הווירטואליות ב-MIG כדי להשוות אותו ליעד. כשמשתמשים במדדים כאלה שמגיעים ממכונה וירטואלית, ה-MIG לא יכול להצטמצם לאפס כי לשינוי הגודל האוטומטי נדרשת לפחות מכונה וירטואלית אחת כדי לפרסם ערך של מדד.

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

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

המסוף

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

    כניסה לדף Instance groups

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

  3. לוחצים על Edit.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). בחלונית Resource and metric שנפתחת, מבצעים את הפעולות הבאות:

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

      1. בקטע Filters (מסננים), לוחצים על Add a filter (הוספת מסנן).
      2. בוחרים תווית ומזינים ערך.
      3. לוחצים על סיום. התרשים יתרענן ויוצג בו הערך המסונן של המדד.
    3. כדי לראות את הערך המצטבר של המדד שישמש לשינוי גודל קבוצת ה-MIG באופן אוטומטי, לוחצים על המתג הצגת הצבירה בתרשים. התרשים מתעדכן ומציג את הערך המצטבר.

    4. בקטע Metric target options for autoscaling (אפשרויות של מדד יעד לשינוי גודל אוטומטי), בוחרים באפשרות Utilization target (יעד ניצול).

    5. עליך לספק את הפרטים הבאים:

      1. יעד הניצול: מציינים את הערך שצריך לשמור על ידי קנה המידה האוטומטי. הערך הזה חייב להיות מספר חיובי. לדוגמה, הערכים 24.5 ו-100 הם ערכים קבילים.
      2. סוג יעד הניצול: בוחרים סוג יעד שמתאים לסוג המדידה של המדד. כדי להשוות בצורה מדויקת, אם יעד הניצול נמדד לפי שניות, צריך להשתמש בשינוי לשנייה כסוג היעד. באופן דומה, משתמשים ב-Delta / min ליעד ניצול שנמדד לפי דקות.
        • מד: המערכת לשינוי גודל המכונה באופן אוטומטי מחשבת את הערך הממוצע של הנתונים שנאספו בדקות האחרונות ומשווה אותו ליעד השימוש.
        • ‫Delta / min: המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
        • ‫Delta / second: המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול.
    6. כשמסיימים להגדיר את המדד, לוחצים על בחירה.

  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כדי להשלים את ההגדרה, לוחצים על שמירה.

gcloud

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדים של Monitoring, משתמשים בפקודה set-autoscaling.

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

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

אם למדד יש כמה ערכים ואתם רוצים להשתמש בערך ספציפי לצורך התאמה אוטומטית לעומס, צריך להשתמש בדגל --stackdriver-metric-filter כמו בדוגמה הבאה.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE \
  --stackdriver-metric-filter="METRIC_FILTER"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MIG_NAME: קבוצת המכונות המנוהלת שרוצים להוסיף לה קנה מידה אוטומטי.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת ה-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance/uptime. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫TARGET_VALUE: ערך המדד שהכלי לשינוי גודל קבוצת המכונות מנסה לשמור עליו.
  • ‫TARGET_TYPE: סוג הערך של המדד.
    • ‫gauge המערכת לשינוי גודל אוטומטי מחשבת את הערך הממוצע של הנתונים שנאספו בדקות האחרונות ומשווה אותו ליעד השימוש.
    • ‫delta-per-minute המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
    • ‫delta-per-second המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול. כדי שההשוואות יהיו מדויקות, אם מגדירים את יעד הניצול בשניות, צריך להשתמש ב-delta-per-second כסוג היעד. באופן דומה, אפשר להשתמש ב-delta-per-minute כדי להגדיר יעד ניצול בדקות.
  • ‫METRIC_FILTER: הוספת מסנן כדי להשתמש בערך ספציפי ממדד שיש לו כמה ערכים, וכדי לציין את סוג המשאב שבמעקב. אם משתמשים במדד שמגיע מכל מכונה וירטואלית, לא צריך לציין את סוג המשאב שבמעקב כי gce_instance משמש כברירת מחדל. לגבי מדדים אחרים, משתמשים בפונקציה resource.type בביטוי המסנן כדי לציין את המשאב שבמעקב. מידע נוסף על מסנן מדדים זמין במאמר מושגים בנושא מדדים של Monitoring.

רשימה מלאה של הפקודות והדגלים הזמינים ב-CLI של gcloud מופיעה במאמר gcloud.

REST

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי Monitoring עבור MIG אזורי, משתמשים במשאב autoscalers. כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי Monitoring עבור MIG אזורי, משתמשים במשאב regionAutoscalers.

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE
    }
  ],
 }
}

אם למדד יש כמה ערכים ואתם רוצים להשתמש בערך ספציפי לצורך שינוי גודל אוטומטי, צריך להשתמש בפרמטר filter כמו שמופיע בקריאת ה-API הבאה.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE,
      "filter": "METRIC_FILTER"
    }
  ],
 }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • ‫AUTOSCALER_NAME: השם של המידרוג האוטומטי.
  • ‫MIG_NAME: קבוצת המכונות המנוהלת שרוצים להוסיף לה קנה מידה אוטומטי.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת ה-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance/uptime. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫TARGET_VALUE: ערך המדד שהכלי לשינוי גודל קבוצת המכונות מנסה לשמור עליו.
  • ‫TARGET_TYPE: סוג הערך של המדד.
    • ‫GAUGE: המערכת להגדלת קיבולת משווה את הערך הממוצע של הנתונים שנאספו בדקות האחרונות ליעד השימוש.
    • ‫DELTA_PER_MINUTE המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
    • ‫DELTA_PER_SECOND המערכת לשינוי גודל אוטומטי מחשבת את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול. כדי להשוות בצורה מדויקת, אם הגדרתם את יעד הניצול בשניות, צריך להשתמש ב-DELTA_PER_SECOND כסוג היעד. באופן דומה, אפשר להשתמש ב-DELTA_PER_MINUTE כדי להגדיר יעד ניצול בדקות.
  • ‫METRIC_FILTER: הוספת מסנן כדי להשתמש בערך יחיד ממדד עם כמה ערכים, וכדי לציין את סוג המשאב שבמעקב. אם משתמשים במדד שמגיע מכל מכונה וירטואלית, לא צריך לציין את סוג המשאב שבמעקב כי gce_instance משמש כברירת מחדל. לגבי מדדים אחרים, צריך לציין את המשאב המנוטר באמצעות בורר resource.type. מידע נוסף על מסנן מדדים זמין במאמר מושגים בנושא מדדים של Monitoring.

שינוי אוטומטי של קנה המידה על סמך העבודה שזמינה לכל מכונה וירטואלית ב-MIG

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

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

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

המסוף

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

    כניסה לדף Instance groups

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

  3. לוחצים על Edit.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). בחלונית Resource and metric שנפתחת, מבצעים את הפעולות הבאות:

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

      1. בקטע Filters (מסננים), לוחצים על Add a filter (הוספת מסנן).
      2. בוחרים תווית ומזינים ערך.
      3. לוחצים על סיום. התרשים יתרענן ויוצג בו הערך של המדד המסונן.
    3. כדי לראות את הערך המצטבר של המדד שישמש לשינוי גודל קבוצת ה-MIG באופן אוטומטי, לוחצים על המתג הצגת הצבירה בתרשים. התרשים מתעדכן ומציג את הערך המצטבר.

    4. בקטע Metric target options for autoscaling (אפשרויות של יעד מדד עבור שינוי גודל אוטומטי), בוחרים באפשרות Single VM instance assignment (הקצאה של מכונת VM אחת).

    5. מציינים ערך של הקצאת מופע יחיד שמייצג את כמות העבודה שצריך להקצות לכל מכונה וירטואלית ב-MIG.

    6. כשמסיימים להגדיר את המדד, לוחצים על בחירה.

  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כדי להשלים את ההגדרה, לוחצים על שמירה.

gcloud

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדים של Monitoring, משתמשים בפקודה set-autoscaling.

בפקודה, מציינים את האפשרות --stackdriver-metric-single-instance-assignment כדי לציין את כמות העבודה שאתם מצפים שכל מכונה וירטואלית בקבוצה תבצע.

הפקודה הבאה יוצרת קנה מידה אוטומטי על סמך הקצאת עבודה לכל מכונת VM.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    --max-num-replicas=MAX_INSTANCES \
    --min-num-replicas=MIN_INSTANCES \
    --update-stackdriver-metric=METRIC_URL \
    --stackdriver-metric-filter="METRIC_FILTER" \
    --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MIG_NAME: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת ה-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance_group/size. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫METRIC_FILTER: הוספת מסנן כדי להשתמש בערך יחיד ממדד עם כמה ערכים, וכדי לציין את סוג המשאב שבמעקב. למידע נוסף על מסנני מדדים, אפשר לעיין במאמר הסברים על מדדי מעקב.
  • ‫INSTANCE_ASSIGNMENT: כמות העבודה להקצאה לכל מופע של מכונה וירטואלית ב-MIG.

REST

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי Monitoring עבור MIG אזורי, משתמשים במשאב autoscalers. כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי Monitoring עבור MIG אזורי, משתמשים במשאב regionAutoscalers.

משתמשים בפרמטר singleInstanceAssignment כדי לציין את כמות העבודה שאתם מצפים שכל מכונה וירטואלית תבצע.

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

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

{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "filter": "METRIC_FILTER",
      "singleInstanceAssignment": INSTANCE_ASSIGNMENT
    }
  ],
 }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • ‫AUTOSCALER_NAME: השם של המידרוג האוטומטי.
  • ‫MIG_NAME: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת ה-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance_group/size. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫METRIC_FILTER: הוספת מסנן כדי להשתמש בערך יחיד ממדד עם כמה ערכים, וכדי לציין את סוג המשאב שבמעקב. למידע נוסף על מסנני מדדים, אפשר לעיין במאמר הסברים על מדדי מעקב.
  • ‫INSTANCE_ASSIGNMENT: כמות העבודה להקצאה לכל מופע של מכונה וירטואלית ב-MIG.

דוגמאות להתאמה אוטומטית לעומס על סמך מדדים

בקטע הזה מופיעות כמה דוגמאות למדדים שמשמשים להתאמה אוטומטית לעומס. רשימה מלאה של מדדים זמינה במאמר בנושא מדדים שלCloud de Confiance .

שינוי גודל אוטומטי על סמך מדד מותאם אישית

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

נניח שיש לכם את ההגדרה הבאה:

  • קבוצת מופעים מנוהלת אזורית בשם our-instance-group מוקצית לביצוע משימה מסוימת. הקבוצה נמצאת באזור us-central1-a.
  • יש לכם מדד מותאם אישית למעקב שמייצא ערך שאתם רוצים לשמור ברמה מסוימת. בדוגמה הזו, נניח שהמדד מייצג את זמן האחזור הממוצע של עיבוד שאילתות שהוקצו לקבוצה.
    • שם המדד המותאם אישית: custom.googleapis.com/example_average_latency.
    • למדד המותאם אישית יש תווית עם מפתח בשם group_name וערך ששווה לשם של קבוצת ה-MIG, ‏ our-instance-group.
    • המדד המותאם אישית מייצא נתונים של המשאב הגלובלי שבמעקב, כלומר הוא לא משויך למכונה וירטואלית ספציפית.

החלטתם שכאשר ערך המדד גבוה מערך ספציפי מסוים, צריך להוסיף עוד מכונות וירטואליות לקבוצה כדי לטפל בעומס, וכאשר הוא נמוך מהערך הזה, אפשר לפנות חלק מהמשאבים. אתם רוצים שהכלי לשינוי גודל אוטומטי יוסיף או יסיר מכונות וירטואליות בהדרגה בקצב שפרופורציונלי למידת החריגה של המדד מהיעד. בדוגמה הזו, נניח שקבעתם שערך היעד הוא 250 delta/sec.

אפשר להגדיר את קנה המידה האוטומטי לקבוצה באמצעות יעד ניצול של 250, שמייצג את קצב השינוי של ערך המדד שמנגנון קנה המידה האוטומטי ינסה לשמור עליו:

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. לוחצים על Edit.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים את המדד מתוך Global > Custom metrics (גלובלי > מדדים מותאמים אישית).
      2. לוחצים על אישור.
    2. בקטע Filters, מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח תווית, בוחרים באפשרות group_name.
      3. בשדה ערך, מציינים our-instance-group.
      4. לוחצים על סיום. התרשים מתעדכן ומציג את הערך המסונן של המדד.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. בוחרים באפשרות יעד ניצול.
      2. מזינים את ערך היעד של הניצול כ-250.
      3. מגדירים את סוג יעד הניצול לDelta / sec.
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling our-instance-group \
  --zone=us-central1-a \
  --max-num-replicas=50 \
  --min-num-replicas=0 \
  --update-stackdriver-metric=custom.googleapis.com/example_average_latency \
  --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \
  --stackdriver-metric-utilization-target=250 \
  --stackdriver-metric-utilization-target-type=delta-per-second

REST

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers
{
"name": "our-instance-group-autoscaler",
"target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group",
"autoscalingPolicy": {
  "maxNumReplicas": 50,
  "minNumReplicas": 0,
  "customMetricUtilizations": [
    {
      "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"",
      "utilizationTargetType": "delta-per-second",
      "utilizationTarget": 250.0,
      "metric": "custom.googleapis.com/example_average_latency"
    }
  ]
}
}

שינוי קנה מידה אוטומטי על סמך הודעות שלא אושרו ב-Pub/Sub

כדי להגדיר התאמה אוטומטית לעומס על סמך הודעות שלא אושרו במינוי Pub/Sub, משתמשים במדד subscription/num_undelivered_messages שמופיע ב-pubsub ומסננים לפי subscription ID.

המדד subscription/num_undelivered_messages מייצא את המספר הכולל של ההודעות במינוי, כולל הודעות שנמצאות בתהליך עיבוד אבל עדיין לא אושרו. לא מומלץ להשתמש במדד שלא כולל את ההודעות שעוברות עיבוד, כי מדד כזה יכול לרדת ל-0 כשיש עדיין עבודה שמתבצעת, מה שגורם להתאמה אוטומטית לעומס לצמצם אופקית ולהפריע לעבודה בפועל.

אם אין לכם מינוי, תוכלו ליצור מינוי מסוג pull,‏ push או BigQuery לפני שתגדירו את ההתאמה האוטומטית של גודל הקבוצה.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. לוחצים על Edit.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type (סוג האות) ל-Cloud Pub/Sub queue (תור של Cloud Pub/Sub).

  8. בוחרים נושא. אם רוצים ליצור נושא חדש, לוחצים על Create a topic כדי ליצור אותו.

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

  10. בשדה Number of messages to assign to each VM (מספר ההודעות להקצאה לכל מכונה וירטואלית), מציינים את מספר ההודעות שלא אושרו שאתם מצפים שכל מכונה וירטואלית תטפל בהן.

  11. לוחצים על סיום.

  12. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \
  --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \
  --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM

REST

כדי להגדיר התאמה אוטומטית לעומס (automatic scaling) של קבוצת MIG אזורית, משתמשים במשאב autoscalers. כדי להגדיר התאמה אוטומטית לעומס (automatic scaling) של קבוצת MIG אזורית, משתמשים במשאב regionAutoscalers.

לדוגמה, מבצעים את הקריאה הבאה כדי ליצור קנה מידה אוטומטי עבור MIG אזורי.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM,
      "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"",
      "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages"
    }
  ]
}
}

שינוי קנה מידה אוטומטי על סמך תנועת רשת נכנסת

כדי להגדיר התאמה אוטומטית לעומס על סמך תנועה ברשת הנכנסת למכונות וירטואליות ב-MIG, צריך להשתמש במדד instance/network/received_bytes_count שסופק על ידי compute.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. לוחצים על Edit.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM Instance > Instance > Received bytes (compute.googleapis.com/instance/network/received_bytes_count).
      2. לוחצים על אישור.
    2. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך יעד לניצול.
      3. מגדירים סוג יעד ניצול.
    3. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "utilizationTargetType": "TARGET_TYPE",
      "utilizationTarget": TARGET_VALUE,
      "metric": "compute.googleapis.com/instance/network/received_bytes_count"
    }
  ]
}
}

שינוי גודל אוטומטי על סמך השימוש בזיכרון

כדי להגדיר התאמה אוטומטית לעומס על סמך אחוז הזיכרון בשימוש, צריך לציין את המדד percent_used שמופיע במדדים של memory סוכן תפעול. כדי להשתמש רק במצב הזיכרון used, צריך לסנן את המדד לפי state. אם לא מציינים את המסנן, המערכת להגדרה אוטומטית של קנה מידה מחשבת את סכום השימוש בזיכרון לפי כל מצבי הזיכרון שמסומנים בתוויות buffered, cached, free, slab ו-used.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM Instance > Memory > Memory utilization (agent.googleapis.com/memory/percent_used).
      2. לוחצים על אישור.
    2. בקטע Filters, מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח תווית, בוחרים את תווית המדד מדינה.
      3. בשדה ערך, מקלידים used.
      4. לוחצים על סיום.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך יעד לניצול.
      3. מגדירים את סוג יעד הניצול כמד.
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \
  --stackdriver-metric-filter="metric.labels.state = \"used\"" \
  --stackdriver-metric-utilization-target-type=gauge \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "filter": "metric.labels.state=\"used\"",
    "utilizationTargetType": "GAUGE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/memory/percent_used"
  }
  ]
}
}

שינוי גודל אוטומטי על סמך קלט/פלט של הדיסק

כדי להגדיר התאמה אוטומטית לעומס על סמך המספר הכולל של פעולות קלט/פלט בדיסק, משתמשים במדד operation_count שמופיע במדדים של הדיסק ב-סוכן תפעול. אם רוצים לשנות את קנה המידה על סמך פעולות קריאה או כתיבה, מסננים את המדד באמצעות התווית direction. באופן דומה, כדי לשנות את גודל הדיסק על סמך פעולות דיסק במכשיר מסוים, משתמשים בתווית device במסנן המדדים.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM instance > Disk > Disk operations (agent.googleapis.com/disk/operation_count).
      2. לוחצים על אישור.
    2. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך יעד לניצול.
      3. מגדירים סוג יעד ניצול.
    3. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES  \
  --min-num-replicas=MIN_INSTANCES  \
  --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "utilizationTargetType": "TARGET_TYPE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/disk/operation_count"
  }
  ]
}
}

שינוי גודל אוטומטי על סמך הגודל של קבוצת MIG אחרת

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

כדי להגדיר שינוי גודל אוטומטי של קבוצת מופעי מכונה מנוהלים (MIG) (MIG_1) על סמך הגודל של קבוצת מופעי מכונה מנוהלים אחרת (MIG_2), משתמשים במדד instance_group/size שמופיע ב-compute.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה והתאמה אוטומטית לעומס כדי להרחיב את הקטע.
  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע אותות של שינוי גודל אוטומטי, אם קיים אות למדד של ניטור, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את סוג האות למדד של Cloud Monitoring.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד
      1. בוחרים באפשרות Instance Group > Instance_group > Instance group size (compute.googleapis.com/instance_group/size).
      2. לוחצים על אישור.
    2. בקטע Filters, מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח Label, בוחרים את תווית המשאב instance_group_name.
      3. בשדה Value (ערך), מקלידים את השם של ה-MIG‏ (MIG_2) שעל פיו רוצים להגדיר את ה-MIG לשינוי גודל אוטומטי.
      4. לוחצים על סיום.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. בוחרים באפשרות Single VM instance assignment (הקצאה של מכונה וירטואלית אחת).
      2. בשדה Single VM instance assignment (הקצאת מכונה וירטואלית יחידה), מזינים 4 אם רוצים לשמור מכונה וירטואלית אחת בקבוצת ה-MIG הנוכחית (MIG_1) לכל 4 מכונות וירטואליות ב-MIG_2.
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_1 \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance_group/size \
  --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \
  --stackdriver-metric-single-instance-assignment=4

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "singleInstanceAssignment": 4,
      "filter": "resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"",
      "metric": "compute.googleapis.com/instance_group/size"
    }
  ]
}
}

שינוי קנה מידה אוטומטי על סמך מדד מפרויקט אחר

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

אחרי שמגדירים את היקף המדד, אפשר להשתמש במדדים מהפרויקט השני על ידי ציון מזהה הפרויקט של המדד במסנן באמצעות התווית resource.labels.project_id.

כשמשתמשים במדדים מפרויקט אחר, חלות גם ההגבלות הבאות:

  • אפשר להגדיר את המדד רק באמצעות ה-CLI של gcloud או REST. אין תמיכה במסוף Cloud de Confiance .

  • אפשר להשתמש רק במדדים שרלוונטיים לכל ה-MIG. לא ניתן להשתמש במדדים שמגיעים מכל מכונה וירטואלית ב-MIG.

בדוגמה הבאה מוצג איך להגדיר התאמה אוטומטית לעומס (autoscaling) של קבוצת מכונות מנוהלות (MIG) אזורית (MIG_1) על סמך הגודל של קבוצת מכונות מנוהלות אחרת (MIG_2) שנמצאת בפרויקט אחר.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_1 \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance_group/size \
  --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.project_id = \"PROJECT_ID_OF_MIG_2\" AND resource.labels.instance_group_name = \"MIG_2\"" \
  --stackdriver-metric-single-instance-assignment=1 \
  --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MIG_1: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫PROJECT_ID_OF_MIG_2: מזהה הפרויקט שמכיל את המדד.
  • ‫MIG_2: השם של קבוצת ה-MIG שמספקת את המדד.
  • ‫ZONE: האזור שמכיל את קבוצת ה-MIG שרוצים להגדיר לה קנה מידה אוטומטי.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID_OF_MIG_1/zones/ZONE/autoscalers
{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID_OF_MIG_1/zones/ZONE/instanceGroupManagers/MIG_1",
  "autoscalingPolicy": {
    "maxNumReplicas": MAX_INSTANCES,
    "minNumReplicas": MIN_INSTANCES,
    "customMetricUtilizations": [
      {
        "singleInstanceAssignment": 1,
        "filter": "resource.type = \"instance_group\" AND resource.labels.project_id = \"PROJECT_ID_OF_MIG_2\" AND resource.labels.instance_group_name = \"MIG_2\"",
        "metric": "compute.googleapis.com/instance_group/size"
      }
    ]
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID_OF_MIG_1: מזהה הפרויקט שמכיל את קבוצת ה-MIG שרוצים להגדיר לה קנה מידה אוטומטי.
  • ‫ZONE: האזור שמכיל את קבוצת ה-MIG שרוצים להגדיר לה קנה מידה אוטומטי.
  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי שאתם מגדירים.
  • ‫MIG_1: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫PROJECT_ID_OF_MIG_2: מזהה הפרויקט שמכיל את המדד.
  • ‫MIG_2: השם של קבוצת ה-MIG שמספקת את המדד.

מושגים שקשורים למעקב אחרי מדדים

בקטע הזה מוסברים בקצרה המושגים של מדדי Monitoring שצריך להכיר כשמגדירים שינוי גודל אוטומטי על סמך מדדי Monitoring.

  • מזהה מדד או כתובת URL של מדד: שם המדד בפורמט של כתובת URL ללא פרוטוקול. אפשר למצוא כתובות URL של מדדים מובנים ברשימת המדדים.

    לדוגמה, כתובת ה-URL של מדד Pub/Sub שמציג את מספר ההודעות שלא אושרו היא pubsub.googleapis.com/subscription/num_undelivered_messages.

  • סוג המשאב במעקב: המקור של ערך המדד. אפשר למצוא את סוג המשאב במעקב של מדד ברשימת המדדים.

    לדוגמה, סוג המשאב במעקב של המדד pubsub.googleapis.com/subscription/num_undelivered_messages הוא pubsub_subscription. במאמר סוגי המשאבים במעקב תוכלו למצוא פרטים נוספים על כל סוג של משאב במעקב.

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

    לדוגמה, המדד pubsub.googleapis.com/subscription/num_undelivered_messages נותן את מספר ההודעות שלא אושרו בכל המינויים הזמינים. ללא מסנן, קנה המידה האוטומטי מחשב את סכום ערכי המדדים מכל המינויים. כדי להגדיר שינוי גודל אוטומטי על סמך מינוי יחיד, צריך להחיל מסנן על התווית subscription_id שהוגדרה ל-pubsub_subscription.

דרישות לסינון מדדים

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

הסינון של מדדים ב-Autoscaler תואם לתחביר של מסננים ב-Monitoring. המסנן צריך לעמוד בדרישות הבאות:

  • חובה להקיף את ערך המסנן במירכאות כפולות.
  • חובה להשתמש באופרטור השוואה ישירה של שוויון (=).
  • כדי לצרף קריטריוני סינון שונים, צריך להשתמש באופרטור AND.

    לדוגמה: --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\"".

  • חובה להשתמש בערכים ישירים. אי אפשר להשתמש בתווים כלליים לחיפוש או בפונקציות במסנן.

    לדוגמה, אי אפשר להשתמש ב-resource.labels.zone = starts_with("us-").

  • אי אפשר להשתמש בתוויות של מטא-נתונים של משאבים שמאחסנות מטא-נתונים לגבי משאב שבמעקב.

רשימה מלאה של תוויות מדדים ותוויות של משאבים במעקב שאפשר לסנן לפיהן זמינה ברשימת המדדים וברשימת המשאבים במעקב.

דרישות לגבי מדדים מותאמים אישית

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

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

  • אם הגדרת ההתאמה האוטומטית לעומס משתמשת בנתונים מכל מכונה וירטואלית בקבוצה, צריך להגדיר מכונות ב-MIG כך שכל מכונה וירטואלית תייצא את המדד המותאם אישית. הערכים שמיוצאים מכל מכונה וירטואלית צריכים להיות משויכים למשאב מנוטר gce_instance, שמכיל את התוויות הבאות:
    • ‫zone בשם האזור שבו נמצאת המכונה.
    • ‫instance_id עם הערך של המזהה המספרי הייחודי שהוקצה למכונה הווירטואלית.
  • המדד חייב לייצא נתונים לפחות כל 60 שניות. אם מייצאים נתונים בתדירות גבוהה יותר מכל 60 שניות, המערכת לשינוי גודל משאבים יכולה להגיב לשינויים בעומס מהר יותר. אם מייצאים את הנתונים בתדירות נמוכה מ-60 שניות, יכול להיות שהמערכת להתאמת קנה מידה אוטומטית לא תגיב לשינויים בעומס מספיק מהר.
  • המדד צריך לייצא נתונים מסוג ערך INT64 או DOUBLE.

מידע על יצירת מדד מותאם אישית זמין במאמר שימוש במדדים מותאמים אישית.

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