במאמר הזה נסביר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) שבה המכונות הווירטואליות מפוזרות על פני כמה אזורים באזור מסוים. פיזור העומס של האפליקציה על פני כמה אזורים מגן על עומס העבודה מפני כשלים אזוריים. אם מתרחש כשל אזורי, האפליקציה יכולה להמשיך לפעול ממופעים שפועלים באזורים הזמינים שנותרו באותו אזור.
סוג ה-MIG הזה נקרא גם MIG אזורי. מידע נוסף זמין במאמר מידע על קבוצות אזוריות של מכונות וירטואליות לניהול (MIG).
אפשר גם לקרוא על תרחישים בסיסיים אחרים ליצירת MIG.
לפני שמתחילים
- יצירת תבנית של הגדרות מכונה, שנדרשת כדי ליצור קבוצה של מופעי מכונה מנוהלים.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מגבלות
כדי לראות את הרשימה המלאה של מגבלות MIG, שמשתנה בהתאם להגדרה שבה אתם משתמשים, אפשר לעיין במאמר מגבלות MIG.
יצירת קבוצת MIG עם מכונות וירטואליות בכמה אזורים באזור
משתמשים ב- Cloud de Confiance console, ב-ה-CLI של gcloud, ב-Terraform או ב-REST.
המסוף
-
נכנסים לדף Instance groups במסוף Cloud de Confiance .
שאר השלבים יופיעו במסוף Cloud de Confiance .
-
לוחצים על
יצירת קבוצת מופעים כדי ליצור קבוצת מופעים חדשה. -
בוחרים אחת מהאפשרויות בNew managed instance group options (אפשרויות חדשות של קבוצת מופעי מכונה מנוהלים):
- ללא שמירת מצב (ברירת מחדל)
- Stateful
- נותנים שם לקבוצת המופעים, ואפשר גם להוסיף תיאור.
- בוחרים תבנית של הגדרות מכונה לקבוצת המכונות או יוצרים תבנית חדשה.
- בקטע מספר המכונות או התאמה אוטומטית לעומס, מציינים את מספר המכונות בקבוצה. חשוב לזכור להקצות מספיק מכונות וירטואליות כדי לתמוך באפליקציה אם מתרחש כשל באזור.
-
בקטע
מיקום , בוחרים באפשרות מספר אזורים. - בוחרים אזור ואת האזורים שרוצים להשתמש בהם. אם בחרתם תבנית של הגדרות מכונה אזורית, האזור נבחר אוטומטית על סמך האזור של תבנית הגדרות המכונה.
- בקטע צורה של חלוקת הטירגוט, בוחרים באפשרות שווה. אם רוצים לבחור צורה אחרת, אפשר לעיין במאמר הגדרת צורה של חלוקת יעד למכונות וירטואליות בקבוצת MIG אזורית.
- אם רוצים להשבית את הפצה יזומה של מופעים, מבטלים את הסימון בתיבת הסימון הפצה של מופעים בקטע הפצה של מופעים.
- ממשיכים בתהליך היצירה של קבוצת ה-MIG.
- כדי ליצור את קבוצת ה-MIG, לוחצים על
Create (יצירה).
gcloud
כל קבוצות ה-MIG מחייבות תבנית של הגדרות מכונה. אם אין לכם תבנית מכונה, אתם צריכים ליצור תבנית מכונה.
לדוגמה, הפקודה הבאה יוצרת תבנית של הגדרות מכונה באזור us-east1 עם מאפייני ברירת מחדל של מכונה:
gcloud compute instance-templates create example-template --instance-template-region us-east1
כשיוצרים את ה-MIG, אפשר לציין את המזהה או את השם של תבנית של הגדרות מכונה. Google ממליצה לציין את המזהה כי בניגוד לשמות, אי אפשר לעשות שימוש חוזר במזהים של תבניות מופעים. כדי לראות את המזהה הייחודי של תבנית של הגדרות מכונה שיצרתם, משתמשים בפקודה describe:
gcloud compute instance-templates describe example-template --region us-east1 --format="value(id)"
לאחר מכן, משתמשים בפקודה instance-groups managed create עם הדגל --region. לדוגמה, הפקודה הבאה יוצרת קבוצת MIG אזורית בשלושה אזורים באזור us-east1:
gcloud compute instance-groups managed create example-rmig \
--template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
--size 30 \
--region us-east1אם רוצים לבחור אזורים ספציפיים שבהם הקבוצה צריכה להשתמש, צריך לספק את הדגל --zones:
gcloud compute instance-groups managed create example-rmig \
--template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
--size 30 \
--zones us-east1-b,us-east1-cאם אתם לא צריכים להשתמש באזורים ספציפיים, אתם יכולים לציין את כל האזורים ולהשתמש בצורת חלוקה מאוזנת. מידע נוסף זמין במאמר חלוקת מכונות וירטואליות בין אזורים.
אם רוצים להשבית את ההפצה היזומה של מופעים, אפשר לעיין במאמר בנושא הפצה יזומה של מופעים.
Terraform
אם עדיין לא יצרתם תבנית של הגדרות מכונה שמציינת את סוג המכונה, את תמונת דיסק האתחול, את הרשת ומאפיינים אחרים של ה-VM שאתם רוצים לכל VM ב-MIG, אתם צריכים ליצור תבנית של הגדרות מכונה.
כדי ליצור MIG אזורי, אפשר להשתמש במשאב google_compute_region_instance_group_manager.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כל קבוצות ה-MIG מחייבות תבנית של הגדרות מכונה. אם אין לכם תבנית מכונה, אתם צריכים ליצור תבנית מכונה.
כשיוצרים את ה-MIG, אפשר לציין את המזהה או את השם של תבנית של הגדרות מכונה. Google ממליצה לציין את המזהה כי בניגוד לשמות, אי אפשר לעשות שימוש חוזר במזהים של תבניות מופעים. כדי לראות את המזהה הייחודי של תבנית של הגדרות מכונה שיצרתם, משתמשים בשיטה get בתבנית האזורית או הגלובלית של הגדרות המכונה שיצרתם.
לאחר מכן, יוצרים בקשת POST ל-method regionInstanceGroupManagers.insert.
בגוף הבקשה, מציינים את שם הקבוצה, גודל הקבוצה ואת כתובת ה-URL של תבנית של הגדרות מכונה. אפשר גם לציין שדות אחרים, כמו שם הבסיס של המופעים בקבוצה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"baseInstanceName": "BASE_INSTANCE_NAME",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"name": "INSTANCE_GROUP_NAME",
"targetSize": "TARGET_SIZE"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
REGION: האזור של הקבוצה. -
BASE_INSTANCE_NAME: (אופציונלי) שם המופע של כל מופע של מכונה וירטואלית שנוצר כחלק מהקבוצה. לדוגמה, אם שם הבסיס של המכונה הואexample-instance, המכונות שייווצרו יהיו עם שמות כמוexample-instance-[RANDOM_STRING], כאשר[RANDOM_STRING]נוצר על ידי השרת. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - בתבנית של הגדרות מכונה גלובלית:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
TARGET_SIZE: מספר היעד של מכונות וירטואליות לקבוצה.
אם רוצים לבחור אזורים ספציפיים או אם יוצרים מכונות וירטואליות באזור עם פחות משלושה אזורים או יותר משלושה אזורים, צריך לכלול את המאפיין distributionPolicy בבקשה ולספק רשימה של אזורים. מחליפים את ZONE בשם של אזור ליצירת מכונות וירטואליות.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"baseInstanceName": "BASE_INSTANCE_NAME",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"name": "INSTANCE_GROUP_NAME",
"targetSize": "TARGET_SIZE",
"distributionPolicy": {
"zones": [
{"zone": "zones/ZONE"},
{"zone": "zones/ZONE"}
]
}
}לדוגמה, הפקודה הבאה יוצרת קבוצת מופעי מכונה מנוהלים (MIG) אזורית בשם example-rmig עם 10 מופעי מכונה מנוהלים שמפוזרים בין אזורים us-east1-b ו-us-east1-c:
POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers
{
"instanceTemplate": "projects/my-project/regions/us-east1/instanceTemplates/1234567890",
"name": "example-rmig",
"targetSize": 10,
"distributionPolicy": {
"zones": [
{"zone": "zones/us-east1-b"},
{"zone": "zones/us-east1-c"}
]
}
}בהתאם לאופן שבו מגדירים קבוצה של מכונות מופעלות (MIG) ופועלים לגביה, מדיניות ופעולות שונות יכולות להשפיע על המופעים בקבוצה. כדי לראות אילו מופעים מנוהלים פועלים, אפשר לעיין במאמר בדיקת הסטטוס של מופעים מנוהלים.
אם אין מספיק קיבולת בכל תחום כדי לתמוך במכונות וירטואליות לקבוצה, Compute Engine יוצרת כמה שיותר מכונות וירטואליות וממשיכה לנסות ליצור את המכונות הווירטואליות שנותרו כשיש קיבולת נוספת.
אם לא מציינים במפורש תחומים ספציפיים בבקשה, מערכת Compute Engine בוחרת באופן אוטומטי שלושה תחומים שבהם ייצרו מכונות וירטואליות. אם אתם צריכים ליצור מכונות וירטואליות ביותר משלושה אזורים או בפחות משלושה אזורים, או אם אתם רוצים לבחור באילו אזורים להשתמש, אתם יכולים לספק רשימה של אזורים בבקשה שלכם. מידע נוסף זמין במאמר בנושא בחירת אזור.
התפלגות המכונות הווירטואליות בין האזורים
כברירת מחדל, קבוצת MIG אזורית מחלקת את מכונות ה-VM באופן שווה בין האזורים שנבחרו. כשיוצרים קבוצת MIG אזורית, חשוב לזכור שמשאבים מסוימים הם אזוריים, כמו יחידות GPU ודיסקים קיימים לאחסון מתמיד. אם בתבנית של הגדרות המכונה של ה-MIG מוגדרים משאבים אזוריים, צריך לוודא שכל המשאבים האלה נמצאים בכל האזורים שנבחרו, כדי שאפשר יהיה לצרף אותם למכונות הווירטואליות שנוצרו על ידי ה-MIG האזורי. לחלופין, אם רוצים שהקבוצה תבדוק אם קיימים משאבים אזוריים, אפשר להגדיר את צורת ההפצה של ה-MIG כדי ליצור מופעים רק באזורים שמכילים את המשאבים האלה.
מידע נוסף זמין במאמרים הבאים:
חלוקה מחדש יזומה של מופעים
חלוקה מחדש יזומה של מופעים מופעלת כברירת מחדל. אם אתם צריכים לנהל באופן ידני את מספר מכונות ה-VM בכל אזור, או אם אתם צריכים להגדיר את צורת ההפצה של קבוצת ה-MIG ל-BALANCED או ל-ANY_SINGLE_ZONE, אתם צריכים להשבית את ההפצה מחדש הפרואקטיבית של המופעים.
מידע נוסף זמין במאמרים הבאים:
- השבתה והפעלה מחדש של חלוקה מחדש יזומה של מכונות וירטואליות
- איזון מחדש של קבוצת MIG אזורית באופן ידני
המאמרים הבאים
- הגדרת תיקון אוטומטי מבוסס-אפליקציה, שבודק מעת לעת שהאפליקציה מגיבה כמצופה בכל אחת ממכונות ה-VM של ה-MIG, ויוצר מחדש באופן אוטומטי מכונות VM שלא מגיבות.
- מפעילים את ההגדרה של התאמה אוטומטית לעומס (automatic scaling) כדי להוסיף או למחוק מכונות וירטואליות מקבוצת ה-MIG באופן אוטומטי בהתאם לעלייה או לירידה בעומס.
- במאמר הזה מוסבר איך להחיל הגדרה חדשה על כל המכונות הווירטואליות ב-MIG או על קבוצת משנה שלהן. כדי לעשות את זה, צריך להגדיר ולהחיל תבנית חדשה של הגדרות מכונה, הגדרה לכל המכונות או הגדרה לכל מכונה.
- כדי לשמור על הדיסקים, המטא-נתונים וכתובות ה-IP במקרים של אירועים משבשים כמו יצירה מחדש של מכונה וירטואלית, תיקון אוטומטי ועדכונים, צריך להוסיף הגדרה עם שמירת מצב.
- מידע על עבודה עם מופעים מנוהלים, למשל כדי למחוק, לבטל ולשחזר מכונות וירטואליות ב-MIG.
- הצגת מידע על קבוצות MIG ועל המכונות הווירטואליות שלהן.
- סימולציה של הפסקת חשמל באזור עבור MIG אזורי
- איך מוסיפים חזית למאזן עומסים חיצוני מסוג HTTP(S) לקבוצת המופעים מידע על סוגים אחרים של מאזני עומסים זמין במאמר סקירה כללית על איזון עומסים.