במדריך למתחילים הזה תלמדו איך להשתמש ב-VM Runtime ב-GDC כדי ליצור מכונה וירטואלית (VM) ב-Google Distributed Cloud. VM Runtime ב-GDC משתמש ב-KubeVirt כדי לתזמן מכונות וירטואליות באשכולות, ומאפשר לכם לעבוד עם אפליקציות ועומסי עבודה מבוססי מכונות וירטואליות בסביבת פיתוח אחידה.
לפני שמתחילים
כדי להשלים את המדריך למתחילים הזה, תצטרכו גישה לאשכול Google Distributed Cloud בגרסה 1.12 (anthosBareMetalVersion: 1.12) או בגרסה מתקדמת יותר. אפשר להשתמש בכל סוג של אשכול שיכול להריץ עומסי עבודה. אם צריך, אפשר לנסות את Google Distributed Cloud ב-Compute Engine או לעיין בסקירה הכללית על יצירת אשכולות.
הפעלת VM Runtime ב-GDC
VM Runtime ב-GDC מותקן אוטומטית ב-Google Distributed Cloud בגרסה 1.10 ומעלה, אבל הוא מושבת כברירת מחדל. כדי להפעיל משאבי מכונות וירטואליות ב-Google Distributed Cloud, צריך להפעיל את זמן הריצה של המכונות הווירטואליות ב-GDC.
bmctl
ב-Google Distributed Cloud בגרסה 1.11 ואילך אפשר להשתמש בכלי שורת הפקודה bmctl:
כדי להפעיל את זמן הריצה, משתמשים בכלי
bmctl:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATHמציינים את הנתיב לקובץ kubeconfig של האשכול. Google Distributed Cloud יוצר את קובץ ה-kubeconfig בתחנת העבודה של האדמין כשיוצרים אשכול. כברירת מחדל, הנתיב הוא
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.אם VM Runtime ב-GDC כבר מופעל, הפקודה מחזירה שגיאה.
משאב מותאם אישית
ב-Google Distributed Cloud בגרסה 1.10 ואילך אפשר להשתמש בהגדרת משאב בהתאמה אישית כדי להפעיל את VM Runtime ב-GDC. המשאב המותאם אישית הזה מותקן כברירת מחדל.
עורכים את
VMRuntimeהמשאב המותאם אישית:kubectl edit vmruntimeמגדירים את
enabled:trueבמפרט:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2בקטע
specשלמעלה, אפשר להגדיר את הערכים הבאים:-
enabled: הערך מוגדר כ-true כדי להפעיל את VM Runtime ב-GDC -
useEmulation: אם הצומת לא תומך בווירטואליזציה של חומרה, או אם אתם לא בטוחים, צריך להגדיר את הערך כ-true. אם האפשרות זמינה, וירטואליזציה של חומרה מספקת ביצועים טובים יותר מאשר אמולציה של תוכנה. אם לא מציינים ערך לשדהuseEmulation, ערך ברירת המחדל הואfalse. -
vmImageFormat: תומך בשני ערכים של פורמט תמונת דיסק:rawו-qcow2. אם לא מגדירים אתvmImageFormat, סביבת הריצה של מכונות וירטואליות ב-GDC משתמשת בפורמט של תמונת הדיסקrawכדי ליצור מכונות וירטואליות. פורמטrawעשוי לספק ביצועים טובים יותר מפורמטqcow2, שהוא פורמט של העתקה בעת כתיבה, אבל הוא עשוי להשתמש ביותר נפח אחסון בדיסק. מידע נוסף על פורמטים של תמונות ל-VM זמין במאמר פורמטים של קבצים של תמונות דיסק במאמרי העזרה של QEMU.
-
שומרים את המשאב המותאם אישית בכלי העריכה.
מוודאים שהמשאב המותאם אישית
VMRuntimeמופעל:kubectl describe vmruntime vmruntimeהפרטים של
VMRuntimeמשאב בהתאמה אישית כוללים קטעStatus. ההגדרה VM Runtime on GDC מופעלת ופועלת כשVMRuntime.Status.Readyמוצג כ-true.
התקנה של כלי הלקוח virtctl
כדי ליצור ולנהל מכונות וירטואליות, צריך להתקין את כלי הלקוח virtctl.
מתקינים את כלי הלקוח
virtctlכפלאגין שלkubectl:export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctlהפרטים האלה מאפשרים לכם לבצע אימות ולהוריד את כלי הלקוח
virtctl, ואז להתקין אותו ב-/usr/bin/kubectl-virtבמחשב המקומי.מוודאים שהפלאגין
virtctlמותקן:kubectl plugin listאם
kubectl-virtמופיע בתגובה, סימן שהפלאגין הותקן בהצלחה.אם
kubectl-virtלא מופיע ברשימה, בודקים את הקובץinstall-virtctl.logכמו שמופיע בפלט של הפקודה הקודמתbmctl install, למשלbmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.
יצירת VM
במדריך למתחילים הזה משתמשים ב-kubectl CLI כדי ליצור מכונה וירטואלית (VM) שמשתמשת באימג' ציבורי של מכונה וירטואלית ובפרטי כניסה שמוגדרים כברירת מחדל.
יוצרים מכונה וירטואלית באשכול. משתמשים בתוסף
virtctlעם הפקודהkubectl:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORDהפקודה הזו יוצרת VM של Ubuntu 20.04 עם הגדרות ברירת מחדל של 2 מעבדים, זיכרון של 4Gi ודיסק אתחול של 20Gi במצב ReadWriteOnce באמצעות סוג האחסון local-shared. מחליפים את הערכים הבאים:
-
VM_NAME: השם של המכונה הווירטואלית. שמות של מכונות וירטואליות צריכים להכיל רק תווים אלפאנומריים באותיות קטנות או את התו '-', להתחיל ולהסתיים בתו אלפאנומרי, ולהיות באורך של עד 63 תווים. מידע נוסף זמין במאמר בנושא שמות של תוויות RFC 1123 במסמכי התיעוד של Kubernetes. -
USERNAME: שם המשתמש של החשבון שרוצים ליצור במכונה הווירטואלית. -
PASSWORD: הסיסמה של חשבון המשתמש.
אם מופיעה שגיאה לגבי פרמטרים של CLI, צריך לוודא שהאשכול הוא בגרסה
1.11.1ומעלה, ושיש לכם את הגרסה העדכנית של כלי הלקוחvirtctl. מידע נוסף על שגיאות ב-CLI זמין ביומן המסוף. לגבי כללים לשם משתמש ולסיסמה, אפשר לעיין במסמכים של מערכת ההפעלה (OS) של האורח. אם משהו לא פועל כמצופה, כדאי לבדוק את הבעיות הידועות ב-VM Runtime ב-GDC.-
יכול להיות שיחלפו כמה דקות עד שהמכונה הווירטואלית תיווצר. בודקים את הסטטוס של ה-VM באמצעות הפקודה
kubectl:kubectl get gvmבדוגמה הבאה של הפלט אפשר לראות שהמכונה הווירטואלית במצב
Running:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
התחברות למכונה הווירטואלית
כשהמכונה הווירטואלית פועלת, מתחברים למסוף של המכונה הווירטואלית.
כדי לגשת למכונה וירטואלית מהמסוף, משתמשים ב-
kubectl:kubectl virt console VM_NAMEכשמוצגת בקשה, מזינים את פרטי הכניסה של המשתמש שציינתם כדי ליצור את מכונת ה-VM.
אחרי שמתחברים בהצלחה למסוף של המכונה הווירטואלית, יוצאים מהמסוף ומסשן המכונה הווירטואלית:
Ctrl + ]
הסרת המשאבים
כדי למחוק את המשאבים שנוצרו במדריך למתחילים הזה, מבצעים את השלבים הבאים.
כדי למחוק את המכונה הווירטואלית ואת DataVolume שמשויך אליה, משתמשים בפקודה
kubectl:kubectl virt delete vm VM_NAME --all
המאמרים הבאים
- ניהול מצב ההפעלה של מכונה וירטואלית ב-Google Distributed Cloud
- עריכת מכונה וירטואלית ב-Google Distributed Cloud
- הצגת יומני מסוף של מכונות וירטואליות ב-Google Distributed Cloud