שימוש במדיניות של שינוי גודל אוטומטי עם כמה אותות

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

למידע נוסף על הסוגים השונים של אותות שינוי גודל אוטומטי, אפשר לעיין במאמר בנושא מדיניות שינוי גודל אוטומטי.

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

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

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

אפשר להשתמש ב-autoscaler כדי לטפל באות אחד לכל סוג מדד, למעט במקרה של מדדים ותזמוני שינוי גודל של Cloud Monitoring. אפשר לבחור עד 5 אותות של שינוי גודל אוטומטי למדדים של Cloud Monitoring וליצור עד 128 תזמונים לכל MIG. לדוגמה, אפשר ליצור קנה מידה אוטומטי שמשתמש בעד אות אחד של ניצול CPU, עד אות אחד של איזון עומסים, עד 5 אותות של מדדים מותאמים אישית ועד 128 לוחות זמנים של שינוי גודל.

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

  • ‫cpuUtilization עם יעד של 0.8
  • ‫loadBalancingUtilization עם יעד של 0.6
  • ‫customMetricUtilization עבור metric1 עם יעד של 1,000
  • ‫customMetricUtilization עבור מדד2 עם יעד של 2,000
  • scalingSchedules
    • לפחות 6 מכונות וירטואליות בכל שבת וראשון בשעה 00:00 למשך 24 שעות
    • לפחות 15 מכונות וירטואליות בכל יום שני עד שישי בשעה 9:00 למשך 8 שעות

בדוגמה הזו, נניח שהכלי לשינוי גודל אוטומטי מודד את ערכי השימוש הממוצעים הבאים עבור MIG שמכיל 10 מכונות וירטואליות בזמן המדידה:

  • ‫0.5 לניצול המעבד (CPU)
  • 0.4 load balancing utilization
  • ‫1100 עבור metric1
  • ‫2,700 ליחידות מטריות

על סמך הערכים הקודמים, הכלי לשינוי גודל אוטומטי מחשב את מספר מכונות ה-VM המומלץ על סמך כל אות:

  • ‫7 מכונות וירטואליות על סמך ניצול המעבד
  • ‫7 מכונות וירטואליות על סמך ניצול איזון העומסים
  • ‫11 מכונות וירטואליות על סמך metric1
  • ‫14 מכונות וירטואליות על סמך metric2
  • ‫6 מכונות וירטואליות בכל יום שבת וראשון למשך כל היום, על סמך לוח הזמנים הראשון של שינוי הגודל
  • ‫15 מכונות וירטואליות בכל יום שני עד שישי מ-9:00 עד 17:00 על סמך לוח הזמנים השני של שינוי הגודל

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

יצירת קנה מידה אוטומטי עם כמה אותות

התהליך ליצירת מידרוג אוטומטי עם כמה אותות משתנה מעט בהתאם לשיטה שבה אתם משתמשים: המסוף Google Cloud , ה-CLI של gcloud או REST.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

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

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

  5. ברשימה Autoscaling mode (מצב שינוי גודל אוטומטי), מוודאים שהאפשרות On: add and remove instances to the group (מופעל: הוספה והסרה של מופעים לקבוצה) מסומנת.

  6. בשדה Minimum number of instances (מספר המינימום של מופעים) מזינים את מספר המינימום של מכונות וירטואליות שרוצים בקבוצת ה-MIG הזו. הגודל המינימלי של קבוצת ה-MIG הזו נשמר תמיד, ללא קשר לאותות ההתאמה האוטומטית לעומס.

  7. בשדה Maximum number of instances (מספר המכונות המקסימלי), מזינים את מספר המכונות המקסימלי שרוצים להגדיר לקבוצת ה-MIG הזו. הגודל המקסימלי של ה-MIG הזה אף פעם לא חורג מהגודל המומלץ שנוצר על ידי אותות שינוי הגודל האוטומטי.

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

    • כדי ליצור אות של שינוי גודל אוטומטי על סמך השימוש הממוצע ב-CPU, בוחרים באפשרות CPU utilization (שימוש ב-CPU) ברשימה Signal type (סוג האות). לאחר מכן, מזינים ניצול CPU של יעד ולוחצים על סיום. מידע נוסף מפורט במאמר בנושא שינוי גודל על סמך ניצול CPU.
    • כדי ליצור אות לשינוי גודל אוטומטי על סמך קיבולת ההגשה של איזון עומסים ב-HTTP, בוחרים באפשרות ניצול איזון העומסים ב-HTTP ברשימה סוג האות. לאחר מכן, מזינים ניצול יעד של איזון עומסים מסוג HTTP ולוחצים על סיום. מידע נוסף על שינוי גודל על סמך קיבולת ההגשה של איזון העומסים
    • כדי ליצור אות לשינוי גודל אוטומטי על סמך מדדים של Cloud Monitoring, בוחרים באפשרות Cloud Monitoring metric (מדד של Cloud Monitoring) ברשימה Signal type (סוג האות). לאחר מכן, ממלאים את שאר השדות ולוחצים על סיום. מידע נוסף זמין במאמר שינוי קנה מידה על סמך מדדים של Cloud Monitoring.
  9. בקטע Autoscaling schedules, לוחצים על Manage כדי להוסיף כל אות של שינוי גודל אוטומטי שמבוסס על לוח זמנים.

    1. לוחצים על יצירת לוח זמנים.

    2. בחלונית יצירת לוח זמנים לשינוי גודל, ממלאים את שדות החובה ולוחצים על שמירה.

    3. בחלונית תזמוני שינוי גודל, לוחצים על סיום.

    מידע נוסף זמין במאמר בנושא שינוי גודל על סמך לוחות זמנים.

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

  11. אופציונלי: כדי להפעיל את האפשרות 'הקטנת הקיבולת', מסמנים את התיבה הפעלת האפשרות 'הקטנת הקיבולת' בקטע הקטנת הקיבולת. מידע נוסף מופיע במאמר בנושא אמצעי בקרה לצמצום קנה מידה.

  12. לוחצים על Save.

gcloud

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

לדוגמה, הפקודה הבאה יוצרת קנה מידה אוטומטי שמשתמש בניצול CPU, בקיבולת של שרת איזון העומסים, בשני מדדים מותאמים אישית ובתוכנית קנה מידה אחת. הדגלים --max-num-replicas ו---min-num-replicas מגבילים את הגודל המקסימלי והמינימלי של ה-MIG.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
   --target-cpu-utilization=0.8 \
   --target-load-balancing-utilization=0.6 \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_1,utilization-target=1000.0,utilization-target-type=GAUGE \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
   --set-schedule=workday-capacity \
   --schedule-cron="30 8 * * Mon-Fri" \
   --schedule-duration-sec=30600 \
   --schedule-min-required-replicas=10 \
   --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" \
   --min-num-replicas=1 \
   --max-num-replicas=50

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

  • ‫MIG_NAME: השם של קבוצת ה-MIG.
  • ‫PATH_TO_CUSTOM_METRIC_1 ו-PATH_TO_CUSTOM_METRIC_2: אופציונלי: הנתיבים למדדים מותאמים אישית בפורמט שדומה ל-custom.cloudmonitoring.googleapis.com/path/to/metric1 ו-custom.cloudmonitoring.googleapis.com/path/to/metric2. מידע נוסף מופיע במאמר בנושא מדדים מותאמים אישית.

חוץ מדגלים של מדדים מותאמים אישית, אפשר להעביר רק דגל אחד לכל היותר לכל סוג מדד בכל פקודת gcloud. במדדים מותאמים אישית, אפשר לספק כמה מדדים מותאמים אישית בפקודה אחת על ידי חזרה על הדגל --custom-metric-utilization.

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

REST

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

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

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

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "customMetricUtilizations":[
      {
        "metric": "PATH_TO_CUSTOM_METRIC_1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "PATH_TO_CUSTOM_METRIC_2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
  },
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/MIG_NAME",
  "name": "MIG_NAME"
}

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • ‫MIG_NAME: השם של קבוצת ה-MIG.
  • ‫PATH_TO_CUSTOM_METRIC_1 ו-PATH_TO_CUSTOM_METRIC_2: אופציונלי: הנתיבים למדדים מותאמים אישית בפורמט שדומה ל-custom.cloudmonitoring.googleapis.com/path/to/metric1 ו-custom.cloudmonitoring.googleapis.com/path/to/metric2. מידע נוסף מופיע במאמר בנושא מדדים מותאמים אישית.

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

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