קבוצות של מופעי מכונה מנוהלים (MIG) מציעות יכולות של התאמה אוטומטית לעומס, שמאפשרות להוסיף או למחוק באופן אוטומטי מופעים של מכונות וירטואליות (VM) מקבוצת MIG בהתאם לעלייה או לירידה בעומס. התאמה אוטומטית לעומס עוזרת לאפליקציות להתמודד בצורה חלקה עם עלייה בתנועה, ומפחיתה את העלויות כשאין צורך במשאבים. אתם מגדירים את מדיניות המידרוג האוטומטי, והמידרוג האוטומטי מבצע מידרוג אוטומטי על סמך העומס שנמדד והאפשרויות שהגדרתם.
התאמה אוטומטית לעומס (automatic scaling) פועלת על ידי הוספה של VM ל-MIG כשיש עומס רב יותר (הגדלת קנה מידה), ומחיקה של VM כשהצורך ב-VM יורד (הקטנת קנה מידה).
דרישות מוקדמות
המידרוג האוטומטי משתמש בסוכן השירות של Compute Engine כדי להוסיף מכונות לקבוצה ולהסיר ממנה מכונות. Google Cloud המערכת יוצרת באופן אוטומטי את חשבון השירות הזה, וגם את הקישור של מדיניות ה-IAM שלו לתפקיד סוכן השירות של Compute Engine, כשה-API של Compute Engine מופעל.
אם החשבון הזה לא מופיע בפרויקט – למשל, אם הסרתם אותו – אתם יכולים להוסיף אותו באופן ידני:
המסוף
נכנסים לדף IAM במסוף Google Cloud .
לוחצים על הענקת גישה.
בשדה New principals, מזינים את הערך
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.בוחרים את התפקיד Compute Engine Service Agent.
לוחצים על Save.
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
Fundamentals
התכונה 'שינוי גודל אוטומטי' משתמשת במושגים ובשירותים הבסיסיים הבאים.
קבוצות של מופעי מכונה מנוהלים
התאמה לעומס (autoscaling) היא תכונה של קבוצות של מופעי מכונה מנוהלים (MIG). קבוצת מופעי מכונה מנוהלים (MIG) היא אוסף של מכונות וירטואליות (VM) שנוצרות מתבנית של הגדרות מכונה משותפת. מידרוג אוטומטי מוסיף או מוחק מופעים מקבוצת מופעי מכונה מנוהלים על סמך מדיניות ההתאמה האוטומטית לעומס של הקבוצה. למרות שב-Compute Engine יש קבוצות מנוהלות ולא מנוהלות של מופעי מכונה, רק קבוצות מנוהלות של מופעי מכונה יכולות לשמש עם קנה מידה אוטומטי.
כדי להבין את ההבדל בין קבוצת מופעי מכונה מנוהלים לבין קבוצת מופעים לא מנוהלת, אפשר לעיין במאמר קבוצות מופעים.
כדי ללמוד איך ליצור קבוצת מופעי מכונה מנוהלים, ראו יצירת MIGs.
מדיניות בנושא התאמה אוטומטית לעומס
כשמגדירים מדיניות של התאמה אוטומטית לעומס לקבוצה, מציינים אות אחד או יותר שמשמשים את המידרוג האוטומטי כדי לשנות את גודל הקבוצה. כשמגדירים כמה אותות במדיניות, הכלי להתאמה אוטומטית לעומס מחשב את מספר המכונות הווירטואליות המומלץ לכל אות, ומגדיר את הגודל המומלץ של הקבוצה כמספר הגדול ביותר.
לכלל של התאמה אוטומטית לעומס (automatic scaling) צריך להיות תמיד לפחות אות אחד של שינוי גודל. כשמפעילים התאמה אוטומטית לעומס ב-MIG, כברירת מחדל, המערכת למידרוג אוטומטי מוסיפה אות של ניצול מעבד (CPU). אפשר לערוך את אות ברירת המחדל הזה, או להסיר אותו ולהוסיף אותות אחרים למדיניות.
בקטעים הבאים מופיעה סקירה כללית של אותות שמבוססים על מדדי ניצול של יעדים ושל אותות שמבוססים על לוחות זמנים.
מדדי ניצול היעד
אפשר להגדיר שינוי גודל אוטומטי על סמך אחד או יותר מהמדדים הבאים שמשקפים את עומס העבודה של קבוצת המופעים:
- ממוצע ניצול המעבד
- קיבולת של מאזן עומסים מסוג HTTP
- מדדים של Cloud Monitoring
המידרוג האוטומטי אוסף באופן רציף נתוני שימוש על סמך מדד הניצול שנבחר, משווה את הניצול בפועל לניצול היעד הרצוי, ומשתמש בנתונים האלה כדי לקבוע אם צריך להסיר מופעים מהקבוצה (הקטנת קנה מידה) או להוסיף מופעים לקבוצה (הגדלת קנה מידה).
רמת הניצול של היעד היא הרמה שבה רוצים לשמור על המכונות הווירטואליות (VM). לדוגמה, אם אתם משנים את גודל הקבוצה על סמך ניצול המעבד (CPU), אתם יכולים להגדיר את רמת הניצול הרצויה ל-75%, והמידרוג האוטומטי ישמור על ניצול המעבד (CPU) של קבוצת המופעים שצוינה ברמה של 75% או קרוב לכך. רמת הניצול של כל מדד מתפרשת באופן שונה בהתאם למדיניות של התאמה אוטומטית לעומס.
אם אתם משתמשים בהתאמת גודל אוטומטית על סמך אחד מהמדדים הבאים, לא ניתן להקטין את קבוצת ה-MIG לאפס מכונות וירטואליות:
- ממוצע ניצול המעבד
- קיבולת של מאזן עומסים מסוג HTTP
- מעקב אחרי מדדים שמגיעים מכל מופע ב-MIG
עם זאת, אפשר להשתמש במדדים אחרים של Monitoring כשמצמצמים את מספר המופעים לאפס, בתנאי שמגדירים את המספר המינימלי של המופעים (autoscalingPolicy.minNumReplicas) ל-0.
למידע נוסף על שינוי קנה מידה על סמך מדדי ניצול היעד, אפשר לעיין בדפים הבאים:
- שינוי גודל על סמך ניצול המעבד
- שינוי קנה מידה על סמך קיבולת ההגשה של איזון העומסים
- שינוי גודל על סמך מדדים של Cloud Monitoring
לוחות זמנים
אפשר להשתמש בהתאמה אוטומטית לעומס לפי לוח זמנים כדי להקצות קיבולת לעומסים צפויים. אפשר להגדיר עד 128 לוחות זמנים לשינוי גודל לכל קבוצת מופעים. לכל תזמון שינוי גודל, מציינים את הפרטים הבאים:
- קיבולת: מספר המכונות הווירטואליות המינימלי הנדרש
- תזמון: שעת התחלה, משך וחזרה (לדוגמה, פעם אחת, כל יום, כל שבוע או כל חודש)
כל תזמון שינוי גודל פעיל משעת ההתחלה שלו למשך הזמן שהוגדר. במהלך הזמן הזה, הכלי להתאמה אוטומטית לעומס משנה את גודל הקבוצה כך שיהיו בה לפחות מספר המופעים שמוגדר בלוח הזמנים של ההתאמה לעומס.
כשמשתמשים בלוחות זמנים, קבוצת ה-MIG יכולה להצטמצם לאפס מופעים אם מתקיימים כל התנאים הבאים:
- מספר המופעים המינימלי (
autoscalingPolicy.minNumReplicas) מוגדר כ-0. - מדיניות ההתאמה האוטומטית לעומס לא מכילה לוחות זמנים פעילים.
- מדיניות התאמה אוטומטית לעומס לא מכילה אותות שמבוססים על מדדי ניצול משאבים של יעד שמונעים את ההקטנה של מספר המופעים לאפס.
מידע נוסף זמין במאמר בנושא שינוי גודל על סמך לוחות זמנים.
תקופת האתחול
תקופת האתחול, שנקראה בעבר תקופת צינון, היא משך הזמן שנדרש לאתחול האפליקציות במכונות הווירטואליות. במהלך אתחול של אפליקציה במופע, יכול להיות שנתוני השימוש במופע לא ישקפו נסיבות רגילות. לכן, המידרוג האוטומטי משתמש בתקופת האתחול כדי לקבל החלטות לגבי שינוי הגודל בדרכים הבאות:
- כדי להחליט על הקטנת הקיבולת, המידרוג האוטומטי מתחשב בנתוני השימוש מכל המופעים, גם ממופע שנמצא עדיין בתקופת האתחול שלו. המידרוג האוטומטי ממליץ להסיר מופעים אם שיעור הניצול הממוצע של כל המופעים נמוך משיעור הניצול של היעד.
- כדי לקבל החלטות לגבי הגדלת הקיבולת, המידרוג האוטומטי מתעלם מנתוני השימוש במופעים שנמצאים עדיין בתקופת האתחול שלהם.
- אם מפעילים את מצב החיזוי, תקופת האתחול מאפשרת למידרוג אוטומטי לפי חיזוי להגדיל את הקבוצה מראש לפני העומס הצפוי, כך שהאפליקציות יאותחלו כשהעומס יגיע. לדוגמה, אם מגדירים את תקופת האתחול ל-300 שניות, אז מידרוג אוטומטי מבוסס-חיזוי יוצר VM 5 דקות לפני העומס החזוי.
כברירת מחדל, תקופת ההפעלה היא 60 שניות. זמני האתחול בפועל משתנים בגלל גורמים רבים. מומלץ לבדוק כמה זמן לוקח לאפליקציה להתחיל לפעול. כדי לעשות את זה, יוצרים מופע ומודדים את הזמן של תהליך ההפעלה מהרגע שבו המופע הופך ל-RUNNING ועד שהאפליקציה מוכנה.
אם מגדירים ערך לתקופת האתחול שהוא ארוך משמעותית מהזמן שנדרש לאתחול של מופע, יכול להיות שהמידרוג האוטומטי יתעלם מנתוני שימוש לגיטימיים, ויעריך הערכת חסר את הגודל הנדרש של הקבוצה, מה שיגרום לעיכוב בהגדלת הקבוצה.
תקופת ייצוב
אותות של התאמה אוטומטית לעומס (autoscaling), כמו ניצול CPU, לא יציבים במיוחד ויכולים להשתנות במהירות. ככל שהעומס עולה ויורד, המידרוג האוטומטי צריך לייצב את האות כדי למנוע מחיקה ויצירה רציפות של VM. המידרוג האוטומטי מייצב אות על ידי שמירה על קיבולת מספקת של VM כדי לתת מענה לעומס השיא שנצפה במהלך תקופת הייצוב.
תקופת הייצוב שווה ל-10 דקות או לתקופת האתחול שהגדרתם, לפי הארוך מביניהם. תקופת הייצוב משמשת רק להחלטות על הקטנת הקיבולת (scale-in) כשהמידרוג האוטומטי צריך למחוק מכונות וירטואליות.
כשהעומס יורד, המידרוג האוטומטי לא מוחק מכונות וירטואליות באופן מיידי. המידרוג האוטומטי ממשיך לעקוב אחרי הקיבולת הנדרשת למשך תקופת הייצוב, ומוחק VM רק כשיש קיבולת מספקת כדי לעמוד בעומס השיא. יכול להיות שזה ייראה כמו עיכוב בהגדלת הקיבולת, אבל זו תכונה מובנית של התאמה אוטומטית לעומס (automatic scaling).
אם לאפליקציה לוקח יותר מ-10 דקות להתחיל לפעול ב-VM חדש, אז המידרוג האוטומטי משתמש בתקופת ההפעלה במקום ב-10 הדקות של תקופת הייצוב שמוגדרות כברירת מחדל, כדי להמתין עד שאפשר יהיה למחוק את ה-VM. כך המערכת תוכל לוודא שההחלטה של הכלי לשינוי גודל המכונה האוטומטי למחוק מכונה וירטואלית תתבסס על משך הזמן שנדרש כדי להחזיר את קיבולת ההגשה.
כשהעומס עולה, המידרוג האוטומטי לא משתמש בתקופת ייצוב ויוצר באופן מיידי כמה מכונות VM שצריך כדי לעמוד בביקוש.
מצב התאמה אוטומטית לעומס
אם אתם צריכים לחקור או להגדיר את הקבוצה בלי הפרעה מפעולות של מידרוג אוטומטי, אתם יכולים להשבית או להגביל באופן זמני את הפעילויות של המידרוג האוטומטי. ההגדרה של המידרוג האוטומטי נשמרת גם כשהוא מושבת או מוגבל, וכל הפעילויות של התאמה אוטומטית לעומס יחזרו לפעולה כשתפעילו אותו מחדש או כשתסירו את ההגבלה.
התאמה אוטומטית לעומס (autoscaling) מבוססת-חיזוי
אם מפעילים התאמה אוטומטית לעומס מבוססת-חיזוי כדי לבצע אופטימיזציה של קבוצת ה-MIG לזמינות, המידרוג האוטומטי חוזה את העומס העתידי על סמך נתונים היסטוריים, ומגדיל את קבוצת ה-MIG לפני שהעומס צפוי להגיע, כך שמופעים חדשים יהיו מוכנים לטפל בעומס כשהוא יגיע.
התכונה 'שינוי גודל אוטומטי מבוסס-תחזיות' פועלת בצורה הכי טובה אם עומס העבודה עומד בקריטריונים הבאים:
- האתחול של האפליקציה נמשך זמן רב – לדוגמה, אם מגדירים תקופת אתחול של יותר מ-2 דקות.
- עומס העבודה משתנה באופן צפוי במחזורים יומיים או שבועיים.
מידע נוסף על שינוי גודל על סמך תחזיות
אמצעי בקרה להקטנת קנה מידה
אם חולפות כמה דקות עד שהעומסים שלכם מאותחלים (לדוגמה, בגלל משימות התקנה ארוכות), אתם יכולים להקטין את הסיכון לזמן תגובה ארוך שנגרם בגלל אירועי הקטנה פתאומיים על ידי הגדרת אמצעי בקרה להקטנה. באופן ספציפי, אם אתם צופים שמיד אחרי ירידות בעומס יהיו עליות חדות בעומס, אתם יכולים להגביל את קצב ההקטנה כדי למנוע מהתכונה 'התאמה אוטומטית לעומס' להקטין את הגודל של קבוצת מופעי מכונה מנוהלים (MIG) ביותר מכונות וירטואליות ממה שעומס העבודה יכול לשאת.
אין צורך להגדיר אמצעי בקרה לצמצום הקיבולת אם האתחול של האפליקציה מהיר מספיק כדי לזהות עליות פתאומיות בעומס במהלך הרחבת הקיבולת.
כדי להגדיר את אמצעי הבקרה לצמצום הקיבולת, מגדירים את המאפיינים הבאים במדיניות שלכם בנושא שינוי גודל אוטומטי.
ההנחה המקסימלית המותרת. מספר המכונות הווירטואליות שעומס העבודה יכול להרשות לעצמו לאבד (מגודל השיא שלו) בחלון הזמן האחרון שצוין. הפרמטר הזה מאפשר להגביל את ההגדלה של הקבוצה כדי שעדיין תוכלו להציג מודעות במקרה של עלייה פתאומית בעומס, עד שעוד מופעים יתחילו להציג מודעות. ככל שמקטינים את הערך של המקסימום המותר להפחתה, כך לוקח יותר זמן להקטין את הקבוצה.
חלון זמן קודם. ההיסטוריה שבמסגרתה המידרוג האוטומטי עוקב אחרי הגודל המקסימלי שנדרש לעומס העבודה. המידרוג האוטומטי לא ישנה את הגודל מתחת להפחתה המקסימלית המותרת, שהיא ההפרש בין הגודל המקסימלי שנצפה בתקופה הזו לבין הגודל המקסימלי המותר. אפשר להשתמש בפרמטר הזה כדי להגדיר כמה זמן המידרוג האוטומטי צריך להמתין לפני הסרת מופעים, בהתאם להפחתה המקסימלית המותרת. חלון זמן ארוך יותר מאפשר למידרוג האוטומטי להתחשב ביותר נתונים היסטוריים של שיאי השימוש, ולכן צמצום הקיבולת יהיה שמרני ויציב יותר.
מידע נוסף זמין במאמרים בנושא הגדרת אמצעי בקרה לצמצום היקף השימוש והסבר על ההחלטות של מידרוג אוטומטי.
גודל מומלץ
גודל הקבוצה המומלץ הוא מספר המכונות הווירטואליות שהמידרוג האוטומטי ממליץ לשמור בקבוצת מופעי מכונה מנוהלים, על סמך עומס השיא שנצפה במהלך 10 הדקות האחרונות. 10 הדקות האחרונות האלה נקראות תקופת הייצוב. הגודל המומלץ מחושב מחדש באופן קבוע. אם מגדירים מדיניות של התאמה אוטומטית לעומס (automatic scaling) עם אמצעי בקרה לצמצום, הגודל המומלץ מוגבל על ידי אמצעי הבקרה לצמצום.
מגבלות
אי אפשר להשתמש בהתאמה אוטומטית לעומס (automatic scaling) עם קבוצות המופעים הבאות, שלא מאפשרות למידרוג אוטומטי ליצור או למחוק VM בהתאם לביקוש:
- קבוצות של מכונות וירטואליות לא מנוהלות
- קבוצות MIG עם הגדרה עם שמירת מצב
- קבוצות MIG שהתיקונים של מכונות ה-VM מושבתים בהן
אי אפשר ליצור מכונות וירטואליות עם שמות ספציפיים כשהתכונה 'שינוי גודל אוטומטי' מופעלת.
אל תשתמשו בהתאמה אוטומטית לעומס (automatic scaling) של Compute Engine עם קבוצות של מכונות מנוהלות (MIG) שנמצאות בבעלות של Google Kubernetes Engine. לקבוצות ב-Google Kubernetes Engine, צריך להשתמש במקום זאת בהתאמה אוטומטית לעומס באשכול. אם אתם לא בטוחים אם קבוצת מופעים מנוהלת היא חלק מאשכול GKE, חפשו את הקידומת
gkeבשם של קבוצת המופעים המנוהלת. לדוגמה:gke-test-1-3-default-pool-eadji9ah.
מה קורה במהלך תיקון תוכנה אוטומטי (autohealing)
התאמה אוטומטית לעומס פועלת בנפרד מתיקון תוכנה אוטומטי.
אם מגדירים תיקון אוטומטי לקבוצה ומופע נכשל בבדיקת תקינות, קבוצת ה-MIG מנסה ליצור מחדש את המופע. בזמן שקבוצת ה-MIG יוצרת מחדש מופע, יכול להיות שמספר המופעים הפעילים בקבוצה יהיה נמוך ממספר המופעים המינימלי שצוין לקבוצה (autoscalingPolicy.minNumReplicas).
תמחור
הגדרת מדיניות של התאמה אוטומטית לעומס לא כרוכה בתשלום נוסף. מידרוג אוטומטי מוסיף או מוחק מופעי VM באופן דינמי, כך שאתם מחויבים רק על המשאבים שבהם נעשה שימוש ב-MIG. אתם יכולים לשלוט בעלות המשאבים על ידי הגדרת המספר המינימלי והמקסימלי של מופעים במדיניות ההתאמה האוטומטית לעומס. למידע על התמחור של Compute Engine, אפשר לעיין במאמר בנושא תמחור.
המאמרים הבאים
- איך התאמה אוטומטית לעומס (auto-scaling) פועלת ב-MIG אזורי
- אם אין לכם קבוצת מופעי מכונה מנוהלים (MIG) קיימת, כדאי לעיין במאמר בנושא יצירת קבוצת מופעי מכונה מנוהלים.
יוצרים סקיילר אוטומטי שמתבסס על:
ניהול של Autoscaler, למשל כדי לקבל מידע עליו, להגדיר את אמצעי הבקרה של הקטנת הקיבולת או להגביל אותו באופן זמני.