במאמר הזה מוסבר איך לאפשר לקבוצת מופעי מכונה מנוהלים (MIG) אזורית לתקן מכונה וירטואלית (VM) באזור חלופי, אם ה-MIG לא יכולה לתקן את ה-VM באזור המקורי שלה. מידע נוסף על תיקונים ב-MIG זמין במאמר מידע על תיקון מכונות וירטואליות לזמינות גבוהה.
כשיוצרים קבוצת MIG אזורית, בוחרים אזור אחד או יותר שבו הקבוצה תפיץ את המכונות הווירטואליות שלה. כברירת מחדל, אם מכונה וירטואלית ב-MIG נכשלת, ה-MIG מנסה לתקן את המכונה הווירטואלית בתחום המקורי שלה. אפשר גם לאפשר לקבוצת ה-MIG לתקן את המכונה הווירטואלית באחד מהאזורים האחרים שנבחרו, וזה שימושי במקרים שבהם קבוצת ה-MIG לא יכולה לתקן את המכונה הווירטואלית באזור המקורי שלה. קבוצת ה-MIG בוחרת את האזור החלופי על סמך הקיבולת והמכסה הזמינות.
מגבלות
כשמגדירים קבוצת MIG אזורית לתיקון של VM באזור חלופי, חלות המגבלות הבאות:
צריך להפעיל את האפשרות עדכון במהלך תיקון.
אין תמיכה בקבוצות MIG אזוריות עם ההגדרות הבאות:
קבוצות MIG עם צורות התפלגות של יעדים מסוג
EVENאוANY_SINGLE_ZONE.קבוצות MIG עם הגדרת שמירת מצב.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
אישור תיקונים באזור חלופי
כדי לאפשר ל-MIG לתקן VM באזור חלופי, בוחרים אחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
אם כבר יש לכם MIG, בצעו את הפעולות הבאות:
- לוחצים על השם של ה-MIG.
- לוחצים על Edit.
אם עדיין אין לכם קבוצת MIG, בצעו את הפעולות הבאות:
- לוחצים על Create instance group.
- מזינים שם.
- בוחרים תבנית של הגדרות מכונה.
- בקטע Location, בוחרים באפשרות Multiple zones, ואז בוחרים אזור ותחומים.
בתפריט הנפתח צורת התפלגות היעד, בוחרים באפשרות מאוזנת או כלשהי.
אם בוחרים באפשרות Balanced, בתיבת הדו-שיח שמופיעה לוחצים על Disable instance redistribution.
אם רוצים לבחור באפשרות Any, צריך קודם למחוק את הגדרת ההתאמה האוטומטית לעומס. כדי למחוק את ההתאמה האוטומטית לעומס, בתפריט הנפתח Autoscaling mode לוחצים על Delete autoscaling configuration.
בקטע VM instance lifecycle, מוודאים שהשדות הבאים מוגדרים כך:
הרשימה Default action on failure מוגדרת ל-Repair instance.
האפשרות Updates during VM instance repair מוגדרת ל-Update the instance configuration.
בקטע Change zone during VM instance repair, מסמנים את התיבה Allow repair of VMs in an alternate zone.
בשאר ההגדרות, אפשר להשתמש בערכי ברירת המחדל או לשנות את השדות.
בסיום, לוחצים על Save לקבוצת MIG קיימת או על Create לקבוצת MIG חדשה.
gcloud
כדי להגדיר קבוצת MIG קיימת לתיקון מכונות וירטואליות באזור חלופי, משתמשים בפקודה update:
gcloud compute instance-groups managed update MIG_NAME \
--on-repair-allow-changing-zone=YES \
--force-update-on-repair \
--region=REGION
כדי ליצור קבוצת MIG שיכולה לתקן מכונות וירטואליות באזור חלופי, משתמשים בפקודה create:
gcloud compute instance-groups managed create MIG_NAME \
--template=INSTANCE_TEMPLATE_URL \
--size=SIZE \
--zones=ZONES \
--target-distribution-shape=SHAPE \
--instance-redistribution-type=none \
--on-repair-allow-changing-zone=YES \
--force-update-on-repair
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: שם ה-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
SIZE: גודל היעד של ה-MIG. -
ZONES: רשימת האזורים שבהם רוצים ליצור את המכונות הווירטואליות ב-MIG. -
SHAPE: צורת ההתפלגות של היעד. הערך יכול להיותbalancedאוany. -
REGION: האזור שבו נמצאת קבוצת ה-MIG.
Terraform
אם עדיין לא יצרתם תבנית של הגדרות מכונה, שבה מצוינים סוג המכונה, קובץ האימג' של דיסק האתחול, הרשת ומאפיינים אחרים של המכונה הווירטואלית שאתם רוצים לכל מכונה וירטואלית בקבוצת המכונות המנוהלת, צרו תבנית של הגדרות מכונה.
כדי ליצור קבוצת MIG שיכולה לתקן מכונות וירטואליות באזור חלופי, משתמשים במשאב google_compute_region_instance_group_manager.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי להגדיר קבוצת MIG קיימת לתיקון מכונות וירטואליות באזור חלופי, משתמשים ב-method regionInstanceGroupManagers.patch:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"onRepair": {
"allowChangingZone": "YES"
},
"forceUpdateOnRepair": "YES"
}
}
כדי ליצור קבוצת MIG שיכולה לתקן מכונות וירטואליות באזור חלופי, משתמשים בשיטה regionInstanceGroupManagers.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"name": "MIG_NAME",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"targetSize": SIZE,
"distributionPolicy": {
"targetShape": "SHAPE"
}
"updatePolicy": {
"instanceRedistributionType": none
}
"instanceLifecyclePolicy": {
"forceUpdateOnRepair": "YES",
"onRepair": {
"allowChangingZone": "YES"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. -
MIG_NAME: שם ה-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
SIZE: גודל היעד של ה-MIG. -
SHAPE: צורת ההתפלגות של היעד. הערך יכול להיותBALANCEDאוANY.
איסור על תיקונים באזור חלופי
אם הגדרתם קבוצת מכונות וירטואליות מנוהלת לתיקון מכונה וירטואלית באזור חלופי, אתם יכולים לשחזר את הגדרת ברירת המחדל שבה קבוצת המכונות הווירטואליות המנוהלת מתקנת את המכונה הווירטואלית באזור המקורי.
כדי לא לאפשר תיקונים באזור חלופי, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של ה-MIG.
לוחצים על Edit.
עוברים לקטע מחזור החיים של מכונות וירטואליות.
בקטע Change zone during VM instance repair, מבטלים את הסימון של התיבה Allow repair of VMs in an alternate zone.
לוחצים על Save.
gcloud
כדי לא לאפשר תיקונים באזור חלופי, משתמשים בפקודה update:
gcloud compute instance-groups managed update MIG_NAME \
--on-repair-allow-changing-zone=NO \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: שם ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG.
REST
כדי לא לאפשר תיקונים באזור חלופי, משתמשים בשיטה regionInstanceGroupManagers.patch:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"onRepair": {
"allowChangingZone": "NO"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. -
MIG_NAME: שם ה-MIG.
המאמרים הבאים
- בדיקת הגדרות התיקון בקבוצת MIG
- מעקב אחרי התפלגות המכונות בקבוצות MIG כדי לראות איך המכונות מתפלגות בין אזורים לאורך זמן.
- כדי לבדוק את האזור של מכונה וירטואלית, מציגים את המכונות המנוהלות.