במאמר הזה נסביר איך להשבית תיקונים של מכונות וירטואליות (VM) שנכשלו או לא תקינות בקבוצת מופעי מכונה מנוהלים (MIG), ואיך להגדיר את ה-MIG לתיקון מכונות וירטואליות אם ההשבתה כבר בוצעה.
כברירת מחדל, קבוצת MIG מתקנת באופן אוטומטי מכונה וירטואלית שנכשלה בקבוצה על ידי יצירה מחדש של המכונה הוירטואלית. אם הגדרתם בדיקת תקינות שמבוססת על אפליקציה, קבוצת ה-MIG גם מתקנת מכונות וירטואליות לא תקינות שבהן האפליקציה לא עוברת את בדיקת התקינות. תיקון מכונה וירטואלית על סמך בדיקת תקינות שמבוססת על אפליקציה נקרא גם תיקון אוטומטי.
אם אתם לא רוצים ש-MIG יתקן מכונה וירטואלית שנכשלה או מכונה וירטואלית לא תקינה, אתם יכולים להשבית את התיקונים ב-MIG. השבתת התיקונים שימושית בתרחישים שבהם רוצים לפתור בעיות ב-VM שנכשל, להטמיע לוגיקת תיקון משלכם או לעקוב אחרי תקינות האפליקציה בלי לתקן מכונות וירטואליות לא תקינות.
כדי לבדוק אם התיקונים כבר מושבתים ב-MIG, בודקים את הגדרת התיקון ב-MIG.
מידע נוסף על תיקונים ב-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
כשמשביתים תיקונים ב-MIG, כברירת מחדל מושבתים גם תיקונים של מכונות וירטואליות שנכשלו וגם תיקון תוכנה אוטומטי (autohealing). אם רוצים להשבית רק תיקון תוכנה אוטומטי (autohealing), אפשר לעיין במאמר בנושא השבתת תיקונים אוטומטיים.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG שבה רוצים להשבית את התיקון.
לוחצים על Edit.
לוחצים על Instance lifecycle and autohealing (מחזור החיים של מופע ותיקון אוטומטי) כדי להרחיב את הקטע.
- בקטע פעולה במקרה של כשל, מגדירים את השדה פעולת ברירת מחדל במקרה של כשל לערך ללא פעולה.
- אם הגדרתם תיקון אוטומטי ואתם לא רוצים שה-MIG ישבית את התיקון האוטומטי, בקטע תיקון אוטומטי, מגדירים את השדה במקרה של בדיקת תקינות שנכשלה לערך תיקון המופע.
לוחצים על Save.
gcloud
כדי להשבית תיקונים בקבוצת MIG, משתמשים בפקודה update באופן הבא. ההגדרה הזו משביתה את התיקון האוטומטי כברירת מחדל.
gcloud compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=do-nothing \
--zone=ZONE
אם התיקון האוטומטי מוגדר ב-MIG ואתם לא רוצים להשבית אותו כברירת מחדל, משתמשים בפקודה update כדי להגדיר את הדגל --action-on-vm-failed-health-check לערך repair. כך אפשר לוודא שהתיקון האוטומטי של מכונות וירטואליות לא תקינות ימשיך לפעול גם אם השבתת התיקון של מכונות וירטואליות שנכשלו מושבתת.
gcloud compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=do-nothing \
--action-on-vm-failed-health-check=repair \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת המכונות. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. בשביל קבוצת MIG אזורית, משתמשים בדגל--region=REGION.
REST
כדי להשבית תיקונים ב-MIG, משתמשים בשיטות ה-API הבאות. ההגדרה הזו משביתה את התיקון האוטומטי כברירת מחדל.
- ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.patch. - ב-MIG אזורי, משתמשים ב-method
regionInstanceGroupManagers.patch.
לדוגמה, מריצים את הקריאה הבאה ב-MIG אזורי. ההגדרה הזו משביתה את התיקון האוטומטי כברירת מחדל.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{
"defaultActionOnFailure": "DO_NOTHING"
}
}
אם התיקון האוטומטי מוגדר ב-MIG ואתם לא רוצים להשבית אותו כברירת מחדל, אתם יכולים להשתמש בשיטות ה-API הבאות כדי להגדיר את הדגל onFailedHealthCheck לערך REPAIR. כך מובטח שהתיקון האוטומטי של מכונות וירטואליות לא תקינות ימשיך לפעול גם אם השבתתם את התיקון של מכונות וירטואליות שנכשלו.
- ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.patch. - ב-MIG אזורי, משתמשים ב-method
regionInstanceGroupManagers.patch.
לדוגמה, מריצים את הקריאה הבאה ב-MIG אזורי:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{
"defaultActionOnFailure": "DO_NOTHING",
"onFailedHealthCheck": "REPAIR"
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
MIG_NAME: השם של ה-MIG. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. אם מדובר ב-MIG אזורי, צריך להשתמש ב-regions/REGIONבכתובת ה-URL.
מגבלות
אם ב-MIG יש אחד מהרכיבים הבאים, אי אפשר להשבית את התיקונים ב-MIG על ידי הגדרת השדה defaultActionOnFailure לערך DO_NOTHING:
השבתת התיקון האוטומטי
אם הגדרתם בדיקת תקינות של אפליקציה ב-MIG, ואתם לא רוצים שה-MIG יתקן מכונות וירטואליות לא תקינות, אתם יכולים להשבית את התיקון האוטומטי בנפרד. הפעולה הזו לא משביתה את התיקונים של מכונות וירטואליות שנכשלו.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG שרוצים להשבית בה את התיקון האוטומטי.
לוחצים על Edit.
לוחצים על Instance lifecycle and autohealing (מחזור החיים של מופע ותיקון אוטומטי) כדי להרחיב את הקטע.
בקטע Autohealing, מגדירים את השדה On failed health check לערך No action.
לוחצים על Save.
gcloud
כדי להשבית תיקון אוטומטי בקבוצת מכונות מנוהלת קיימת, משתמשים בפקודה update ומגדירים את הדגל --action-on-vm-failed-health-check לערך do-nothing.
לדוגמה, משתמשים בפקודה הבאה עבור קבוצת MIG אזורית:
gcloud compute instance-groups managed update MIG_NAME \
--action-on-vm-failed-health-check=do-nothing \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של ה-MIG. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. בשביל קבוצת MIG אזורית, משתמשים בדגל--region=REGION.
REST
כדי להשבית את התיקון האוטומטי ב-MIG, משתמשים בשיטות ה-API באופן הבא ומגדירים את הדגל --action-on-vm-failed-health-check לערך do-nothing.
- ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.patch. - ב-MIG אזורי, משתמשים ב-method
regionInstanceGroupManagers.patch.
לדוגמה, שולחים את הבקשה הבאה כדי להשבית את התיקון האוטומטי ב-MIG אזורי:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{
"onFailedHealthCheck": "DO_NOTHING"
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. אם מדובר ב-MIG אזורי, צריך להשתמש ב-regions/REGIONבכתובת ה-URL. -
MIG_NAME: השם של קבוצת המכונות.
הפעלה של תיקונים או תיקון תוכנה אוטומטי
כברירת מחדל, קבוצת MIG מתקנת מכונות וירטואליות שנכשלו, ואם מוגדר תיקון אוטומטי, קבוצת ה-MIG מתקנת גם מכונות וירטואליות לא תקינות. אם השבתתם את התיקונים או את התיקון האוטומטי או את שניהם, אתם יכולים להפעיל אותם מחדש.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG שבה רוצים להפעיל תיקון.
לוחצים על Edit.
לוחצים על Instance lifecycle and autohealing (מחזור החיים של מופע ותיקון אוטומטי) כדי להרחיב את הקטע.
- כדי לתקן מכונות וירטואליות שנכשלו, בקטע פעולה במקרה של כשל, מגדירים את השדה פעולת ברירת המחדל במקרה של כשל לערך תיקון המופע.
- כדי לתקן מכונות וירטואליות לא תקינות, בקטע Autohealing (תיקון אוטומטי), מגדירים את השדה On failed health check (במקרה של בדיקת תקינות שנכשלה) לערך Repair instance (תיקון המכונה). אם מגדירים את הערך הזה לפעולת ברירת מחדל, התיקון האוטומטי משתמש באותה הגדרה שהגדרתם בשדה פעולת ברירת מחדל במקרה של כשל.
בסיום, לוחצים על שמירה כדי לאשר את השינויים.
gcloud
כדי להפעיל תיקונים ב-MIG, משתמשים בפקודה update.
הפעולה הזו מפעילה גם תיקון אוטומטי, אם הערך של הדגל --action-on-vm-failed-health-check הוא default-action.
gcloud compute instance-groups managed update MIG_NAME \
--default-action-on-vm-failure=repair
אם השבתתם את התיקון האוטומטי בנפרד ואתם רוצים להפעיל אותו שוב, משתמשים בפקודה update:
gcloud compute instance-groups managed update MIG_NAME \
--action-on-vm-failed-health-check=default-action OR repair
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAMEבשם של קבוצת MIG. -
default-actionORrepair: אם רוצים שהתיקון האוטומטי ישתמש באותה הגדרה שהגדרתם לתיקונים של מכונות וירטואליות שנכשלו, צריך להגדיר את הערך ל-default-action. לדוגמה, אם משביתים את התיקון של מכונות וירטואליות שנכשלו, גם התיקון האוטומטי של ה-MIG מושבת. אם רוצים לשלוט בתיקונים של מכונות וירטואליות לא תקינות בנפרד, מגדירים את הערך ל-repair.
REST
כדי להפעיל תיקונים ב-MIG, משתמשים בשיטת ה-API באופן הבא. הפעולה הזו מפעילה גם תיקון אוטומטי, אם הערך בשדה onFailedHealthCheck הוא DEFAULT_ACTION.
- ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.patch. - ב-MIG אזורי, משתמשים ב-
regionInstanceGroupManagers.patchmethod.
לדוגמה, שולחים את הבקשה הבאה ב-MIG אזורי:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "REPAIR"
}
}
אם השבתתם את התיקון האוטומטי בנפרד ואתם רוצים להפעיל אותו שוב, אתם יכולים להשתמש בשיטת ה-API באופן הבא:
- ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.patch. - ב-MIG אזורי, משתמשים ב-
regionInstanceGroupManagers.patchmethod.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"onFailedHealthCheck": "DEFAULT_ACTION OR REPAIR"
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. אם מדובר ב-MIG אזורי, צריך להשתמש ב-regions/REGIONבכתובת ה-URL. -
MIG_NAME: השם של ה-MIG. -
DEFAULT_ACTIONORREPAIR: אם רוצים שהתיקון האוטומטי ישתמש באותה הגדרה כמו תיקונים של מכונות וירטואליות שנכשלו, צריך להגדיר את הערך ל-DEFAULT_ACTION. לדוגמה, כשמשביתים את התיקון של מכונות וירטואליות שנכשלו, ה-MIG משבית גם את התיקון האוטומטי. אם רוצים להגדיר תיקון תוכנה אוטומטי (autohealing) בנפרד, מגדירים את הערך ל-REPAIR.
המאמרים הבאים
- בדיקת הגדרות התיקון ב-MIG.
- כדי לבדוק את השגיאות במכונה וירטואלית שנכשלה, מציגים את השגיאות של המופע.
- בדיקת מצב התקינות של מכונה וירטואלית