כשיוצרים מדיניות להתאמה אוטומטית לעומס עם כמה אותות, המידרוג האוטומטי מבצע התאמה על סמך האות שמספק את המספר הגדול ביותר של מופעי מכונות וירטואליות (VM) בקבוצת מופעי מכונה מנוהלים (MIG). כך תמיד יהיו מספיק מכונות וירטואליות לטיפול בעומסי העבודה של האפליקציה, ותוכלו לשנות את גודל האפליקציות עם צווארי בקבוק פוטנציאליים מרובים.
למידע נוסף על הסוגים השונים של אותות שינוי גודל אוטומטי, אפשר לעיין במאמר בנושא מדיניות שינוי גודל אוטומטי.
לפני שמתחילים
- מידע נוסף על היסודות של שינוי גודל אוטומטי
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
איך משנה הגודל האוטומטי מטפל בכמה אותות
מנגנון להתאמה אוטומטית לעומס מטפל בכמה אותות על ידי חישוב המספר המומלץ של מכונות וירטואליות לכל אות, ואז בחירת האות שמוביל למספר הגדול ביותר של מכונות וירטואליות בקבוצת ה-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.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG ברשימה.
לוחצים על Edit.
לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
ברשימה Autoscaling mode (מצב שינוי גודל אוטומטי), מוודאים שהאפשרות On: add and remove instances to the group (מופעל: הוספה והסרה של מופעים לקבוצה) מסומנת.
בשדה Minimum number of instances (מספר המינימום של מופעים) מזינים את מספר המינימום של מכונות וירטואליות שרוצים בקבוצת ה-MIG הזו. הגודל המינימלי של קבוצת ה-MIG הזו נשמר תמיד, ללא קשר לאותות ההתאמה האוטומטית לעומס.
בשדה Maximum number of instances (מספר המכונות המקסימלי), מזינים את מספר המכונות המקסימלי שרוצים להגדיר לקבוצת ה-MIG הזו. הגודל המקסימלי של ה-MIG הזה אף פעם לא חורג מהגודל המומלץ שנוצר על ידי אותות שינוי הגודל האוטומטי.
לכל אות של שינוי גודל אוטומטי שמבוסס על מדד שרוצים להוסיף, לוחצים על הוספת אות.
- כדי ליצור אות של שינוי גודל אוטומטי על סמך השימוש הממוצע ב-CPU, בוחרים באפשרות CPU utilization (שימוש ב-CPU) ברשימה Signal type (סוג האות). לאחר מכן, מזינים ניצול CPU של יעד ולוחצים על סיום. מידע נוסף מפורט במאמר בנושא שינוי גודל על סמך ניצול CPU.
- כדי ליצור אות לשינוי גודל אוטומטי על סמך קיבולת ההגשה של איזון עומסים ב-HTTP, בוחרים באפשרות ניצול איזון העומסים ב-HTTP ברשימה סוג האות. לאחר מכן, מזינים ניצול יעד של איזון עומסים מסוג HTTP ולוחצים על סיום. מידע נוסף על שינוי גודל על סמך קיבולת ההגשה של איזון העומסים
- כדי ליצור אות לשינוי גודל אוטומטי על סמך מדדים של Cloud Monitoring, בוחרים באפשרות Cloud Monitoring metric (מדד של Cloud Monitoring) ברשימה Signal type (סוג האות). לאחר מכן, ממלאים את שאר השדות ולוחצים על סיום. מידע נוסף זמין במאמר שינוי קנה מידה על סמך מדדים של Cloud Monitoring.
בקטע Autoscaling schedules, לוחצים על Manage כדי להוסיף כל אות של שינוי גודל אוטומטי שמבוסס על לוח זמנים.
לוחצים על יצירת לוח זמנים.
בחלונית יצירת לוח זמנים לשינוי גודל, ממלאים את שדות החובה ולוחצים על שמירה.
בחלונית תזמוני שינוי גודל, לוחצים על סיום.
מידע נוסף זמין במאמר בנושא שינוי גודל על סמך לוחות זמנים.
בקטע Initialization period (תקופת ההפעלה), מזינים את מספר השניות שנדרשות להפעלת האפליקציה. במהלך התקופה הזו, המכונות הווירטואליות מסיימות את האתחול לפני שהשימוש בנתונים נחשב למהימן על ידי הכלי לשינוי גודל אוטומטי. מידע נוסף זמין במאמר בנושא תקופת ההפעלה.
אופציונלי: כדי להפעיל את האפשרות 'הקטנת הקיבולת', מסמנים את התיבה הפעלת האפשרות 'הקטנת הקיבולת' בקטע הקטנת הקיבולת. מידע נוסף מופיע במאמר בנושא אמצעי בקרה לצמצום קנה מידה.
לוחצים על 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. מידע נוסף מופיע במאמר בנושא מדדים מותאמים אישית.
כפי שמוצג בדוגמה הזו, אפשר לספק כמה מדדים מותאמים אישית וכמה לוחות זמנים של שינוי קנה מידה באותה בקשה.
למידע נוסף על הגדרת השדות לכל סוג של אות שינוי גודל אוטומטי, אפשר לעיין בדפים הבאים: