במאמר הזה מוסבר איך לבדוק את סטטוס המערכת של מכונה וירטואלית (VM) במהלך מחזור החיים שלה ב-Google Distributed Cloud (GDC) עם air gap.
מכונות וירטואליות יכולות לעבור בין מצבים רבים במהלך מחזור החיים שלהן. כשיוצרים מכונה וירטואלית, Distributed Cloud מקצה משאבים כדי להפעיל אותה. לאחר מכן, המכונה הווירטואלית עוברת למצב התחלה, שבו היא מתכוננת להפעלה הראשונה. במהלך ההפעלה ואחריה, ה-VM נחשב לפועל. במהלך מחזור החיים של מכונה וירטואלית פועלת, אפשר לעצור ולהפעיל אותה מחדש, או להשעות ולהמשיך את הפעולה שלה שוב ושוב.
המסמך הזה מיועד למפתחים בקבוצות של אדמינים בפלטפורמה או של מפעילי אפליקציות, שבודקים את סטטוס המערכת של מכונות וירטואליות בסביבת Distributed Cloud. מידע נוסף מופיע במאמר קהלים למסמכי תיעוד של GDC עם air gap.
הגדרות הסטטוס של המכונה הווירטואלית
| מדינה | הגדרה |
|---|---|
Pending |
המכונה הווירטואלית אושרה על ידי המערכת וממתינה להקצאה. |
Provisioning
|
משאבים שמשויכים למכונה הווירטואלית, כמו VirtualMachineDisk, מוקצים ומוכנים לשימוש. |
Starting |
המכונה הווירטואלית מתכוננת להפעלה. |
Running |
המכונה הווירטואלית פועלת. |
Stopping |
המכונה הווירטואלית בתהליך עצירה. |
Stopped |
המכונה הווירטואלית נעצרה ולא צפויה להתחיל לפעול. |
Paused
|
המכונה הווירטואלית מושהית ונמצאת במצב קפוא, שנשמר. אין גישה למכונה הווירטואלית. |
Terminating
|
המכונה הווירטואלית והמשאבים שמשויכים אליה נמצאים בתהליך מחיקה. |
ErrorConfiguration
|
יש שגיאה בהגדרות של המכונה הווירטואלית. מצבי ההגדרה הלא תקינים יכולים להיגרם מהסיבות הבאות: |
MachineTypeNotFound – סוג המכונה הווירטואלית שאליו מתייחסת המכונה הווירטואלית לא נמצא או שהוא נמחק. |
|
MachineDiskMisconfig – הדיסק של ה-VM לא מוגדר נכון. |
|
InterfaceCreationFailed – יצירת ממשק הרשת נכשלה. |
|
CrashLoopBackOff |
המכונה הווירטואלית נמצאת בלולאת קריסה וממתינה לניסיון חוזר. |
PendingIPAllocation |
המכונה הווירטואלית ממתינה שהמערכת תקצה לה כתובת IP. |
Unknown
|
אי אפשר לקבל את מצב המכונה הווירטואלית, בדרך כלל בגלל שגיאה בתקשורת עם המארח שבו היא פועלת. |
ErrorUnschedulable
|
אירעה שגיאה במהלך תזמון המכונה הווירטואלית, למשל בגלל בקשות למשאבים או אילוצי תזמון שלא ניתן למלא או לתמוך בהם. |
DiskError |
יש שגיאה במכונה הווירטואלית באחד או יותר מהדיסקים המצורפים. |
WaitingForDisk |
המכונה הווירטואלית ממתינה עד שאחד או יותר מה-VirtualMachineDisk המצורפים יהיו מוכנים. |
CrashLoopBackoff |
המכונה הווירטואלית קורסת באופן עקבי מסיבה כלשהי. |
לפני שמתחילים
כדי להשתמש בפקודות של ממשק שורת הפקודה (CLI) של gdcloud, צריך לוודא שהורדתם, התקנתם והגדרתם את ה-CLI של gdcloud.
כל הפקודות של Distributed Cloud משתמשות ב-CLI של gdcloud או kubectl, ודורשות סביבה של מערכת הפעלה (OS).
קבלת נתיב הקובץ של kubeconfig
כדי להריץ פקודות בשרת Management API, צריך לוודא שיש לכם את המשאבים הבאים:
אם אין לכם קובץ kubeconfig לשרת Management API, נכנסים לחשבון ויוצרים אותו.
בהוראות הבאות, מחליפים את
MANAGEMENT_API_SERVERבנתיב לקובץ kubeconfig של שרת Management API.
בקשת תפקידים ב-IAM
פנו לאדמין של הפרויקט ב-IAM ובקשו ממנו להקצות לכם את התפקידים הבאים בפרויקט:
אדמין של פרויקט מכונות וירטואליות (
project-vm-admin): יצירה, שינוי, הצגה ומחיקה של מכונות וירטואליות במרחב השמות של הפרויקט.צפייה בפרויקט(
project-viewer): צפייה בכל המשאבים במרחבי השמות של הפרויקט.
כל התפקידים של המכונה הווירטואלית חייבים להיות מקושרים למרחב השמות של הפרויקט שבו נמצאת המכונה הווירטואלית. פועלים לפי השלבים כדי לאמת את הגישה.
בדיקת הסטטוס של המכונה הווירטואלית
כל מכונה וירטואלית מדווחת על הסטטוס שלה כחלק מהמאפיינים של המכונה הווירטואלית. כדאי לבדוק את הסטטוס של מכונה וירטואלית במקרים הבאים:
- אם יש בעיות במכונה הווירטואלית.
- כדי לוודא שהמכונה הווירטואלית פועלת אחרי שהיא הופעלה.
- כדי לוודא שהמכונה הווירטואלית נמצאת במצב
PausedאוStopped.
הצגת רשימה של מכונות וירטואליות כדי לבדוק את הסטטוס שלהן
בשלבים הבאים מוסבר איך להציג רשימה של מכונות וירטואליות, לראות את הסטטוס שלהן ולקבל מידע נוסף על הסטטוס.
מציגים את כל המכונות הווירטואליות ואת הסטטוס של כל אחת מהן:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.googמחליפים את המשתנים בדוגמאות הקוד בערכים שלכם, בהתאם לטבלה הבאה.
משתנה הגדרה MANAGEMENT_API_SERVERקובץ kubeconfig של שרת Management API. PROJECTהפרויקט ב-GDC שבו נמצא ה-VM. פלט לדוגמה:
NAME STATUS AGE vm-1 Running 1d vm-2 Stopped 8d vm-3 ErrorConfiguration 1dכדי לקבל פרטים נוספים על סטטוס של מכונה וירטואלית מסוימת:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -o jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'מחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVERעם קובץ kubeconfig של שרת Management API שקיבלתם מהפקודהgdcloud auth login. -
VM_NAMEבשם של המכונה הווירטואלית החדשה. -
PROJECTבפרויקט ב-GDC שבו נמצאת ה-VM.
פלט לדוגמה שבו מוצגים הערכים
Reasonו-Message:State: ErrorConfiguration Reason: MachineDiskNotFound Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.יכול להיות שגם השדות
Reasonו-Messageיהיו ריקים. זה אומר שלמערכת לא היה מה לדווח לגביהם.פלט לדוגמה עם
Reasonו-Messageריקים:State: Running Reason: Message:-
עצירה או הפעלה מחדש של מכונה וירטואלית
במהלך מחזור החיים של המכונה הווירטואלית, יכול להיות שתצטרכו לעצור ולהפעיל אותה מחדש, או למחוק אותה כדי להגיב לשינוי בסטטוס או לנהל אותה באופן כללי. בדפים הבאים מוסבר איך לעצור, לאפס או למחוק מכונה וירטואלית: