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

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

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

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

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

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

אפשר להשתמש בסקלר אוטומטי כדי לטפל באות אחד לכל סוג מדד, למעט במקרה של מדדים ותזמוני שינוי גודל של 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 לניצול המעבד
  • 0.4 load balancing utilization
  • ‫1100 ליחידה מטרית1
  • ‫2700 ליחידות מטריות2

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

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

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

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

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

המסוף

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

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

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

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

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

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

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

  11. אופציונלי: כדי להפעיל את אמצעי הבקרה לצמצום הקיבולת, מסמנים את התיבה Enable scale-in controls (הפעלת אמצעי הבקרה לצמצום הקיבולת) בקטע Scale-in controls (אמצעי הבקרה לצמצום הקיבולת). מידע נוסף מופיע במאמר בנושא אמצעי בקרה לצמצום היקף השימוש

  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. מידע נוסף מופיע במאמר בנושא מדדים מותאמים אישית.

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

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