כדי לבדוק אם קבוצת מופעי המכונה המנוהלים (MIG) האזורית הוקצתה מספיק ויכולה לשרוד הפסקה זמנית בפעילות של אזור, אתם יכולים להשתמש בדוגמה הבאה כדי לדמות כשל אזורי.
לפני שמתחילים
- כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין את Google Cloud CLI.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
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 .
שימוש בסקריפט כדי לדמות הפסקה זמנית בשירות באזור מסוים
הסקריפט הזה עוצר ומפעיל את Apache כתרחיש ברירת המחדל. אם זה לא רלוונטי לאפליקציה שלכם, החליפו את הפקודות שעוצרות ומפעילות את Apache בתרחיש משלכם של כשל והתאוששות.
פורסים ומריצים את הסקריפט הזה באופן רציף בכל מכונה וירטואלית בקבוצה. כדי לעשות את זה, מוסיפים את הסקריפט לתבנית של הגדרות המכונה או כוללים את הסקריפט בתמונה בהתאמה אישית ומשתמשים בתמונה בתבנית של הגדרות המכונה.
כדי לדמות כשל באזור, מגדירים את שני שדות המטא-נתונים הבאים של הפרויקט:
-
failed_zone: מגדיר את האזור שבו רוצים לדמות את ההפסקה (הגבלת הכשל לאזור אחד בלבד). -
failed_instance_names: בחירת המכונות הווירטואליות שיועברו למצב אופליין לפי שם (כדי להגביל את הכשל רק למכונות וירטואליות שהשם שלהן מכיל את המחרוזת הזו).
אפשר להגדיר את המטא-נתונים האלה באמצעות ה-CLI של gcloud. לדוגמה, הפקודה הבאה מגדירה את ההפסקה באזור
europe-west1-bומשפיעה על מכונות וירטואליות שהשמות שלהן מתחילים ב-base-instance-name:gcloud compute project-info add-metadata --metadata failed_zone='europe-west1-b',failed_instance_names='base-instance-name-'
-
אחרי שמסיימים לדמות את ההפסקה, מסירים את מפתחות המטא-נתונים כדי להתאושש מהכשל:
gcloud compute project-info remove-metadata --keys failed_zone,failed_instance_names
הנה כמה רעיונות לתרחישי כשל שאפשר להריץ באמצעות הסקריפט הזה:
- עוצרים את האפליקציה לגמרי כדי לראות איך קבוצת ה-MIG מגיבה.
- גורמים למכונות הווירטואליות להחזיר את הסטטוס "לא תקין" בבדיקות התקינות של איזון העומסים.
- משנים את iptables כדי לחסום חלק מהתנועה אל ה-VM וממנו.
- מכבים את המכונות הווירטואליות. כברירת מחדל, הוא ייווצר מחדש על ידי ה-MIG האזורי זמן קצר לאחר מכן, אבל המופע החדש יכבה את עצמו מיד ברגע שהסקריפט יופעל וכל עוד ערכי המטא-נתונים מוגדרים. הפעולה הזו תגרום ללולאת קריסה.
המאמרים הבאים
- עוקבים אחרי התפלגות המכונות בקבוצות MIG כדי לראות איך הקיבולת משתנה בין האזורים במהלך הפסקת חשמל מדומה ואחריה.
- איך מפתחים אפליקציות אינטרנט עמידות וניתנות להתאמה
- מידע על התאוששות מאסון ב-Google Cloud Platform