במדריך למתחילים הזה נסביר איך משתמשים ב-VM Runtime ב-GDC כדי ליצור מכונה וירטואלית (VM) ב-Google Distributed Cloud. VM Runtime ב-GDC משתמש ב-KubeVirt כדי לתזמן מכונות וירטואליות באשכולות, ומאפשר לכם לעבוד עם אפליקציות ועומסי עבודה מבוססי-VM בסביבת פיתוח אחידה.
לפני שמתחילים
כדי להשלים את המדריך למתחילים הזה, אתם צריכים גישה לאשכול 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, שהוא פורמט של העתקה בעת כתיבה, אבל הוא עשוי להשתמש ביותר נפח אחסון בדיסק. מידע נוסף על פורמטים של תמונות למכונה וירטואלית זמין במאמר פורמטים של קבצים של תמונות דיסק במאמרי העזרה של QEMU.
-
שומרים את המשאב המותאם אישית בכלי העריכה.
מוודאים שהמשאב המותאם אישית
VMRuntimeמופעל:kubectl describe vmruntime vmruntimeהפרטים של
VMRuntimeמשאב מותאם אישית כוללים קטעStatus. האפשרות VM Runtime ב-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הפקודה הזו יוצרת מכונה וירטואלית של Ubuntu 20.04 עם הגדרות ברירת מחדל של 2 מעבד, 4Gi זיכרון ודיסק אתחול בנפח 20Gi במצב ReadWriteOnce באמצעות סוג האחסון local-shared. מחליפים את הערכים הבאים:
-
VM_NAME: השם של המכונה הווירטואלית. השמות של מכונות וירטואליות צריכים להכיל רק תווים אלפאנומריים באותיות קטנות או את התו '-', להתחיל ולהסתיים בתו אלפאנומרי, ולהיות באורך של עד 63 תווים. מידע נוסף זמין במאמר בנושא שמות של תוויות RFC 1123 במסמכי התיעוד של Kubernetes. -
USERNAME: שם המשתמש של החשבון שרוצים ליצור במכונה הווירטואלית. -
PASSWORD: הסיסמה של חשבון המשתמש.
אם מופיעה שגיאה לגבי פרמטרים של CLI, צריך לוודא שהאשכול הוא בגרסה
1.11.1ומעלה, ושיש לכם את הגרסה העדכנית של כלי הלקוחvirtctl. מידע נוסף על שגיאות ב-CLI זמין ביומן המסוף. לגבי כללים לשם משתמש ולסיסמה, אפשר לעיין במסמכי מערכת ההפעלה של האורח. אם משהו לא פועל כמצופה, כדאי לבדוק את הבעיות הידועות ב-VM Runtime ב-GDC.-
יכול להיות שיעברו כמה דקות עד שהמכונה הווירטואלית תיווצר. כדי לבדוק את הסטטוס של המכונה הווירטואלית, מריצים את הפקודה
kubectl:kubectl get gvmבדוגמה הבאה של פלט אפשר לראות את ה-VM במצב
Running:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
התחברות למכונה הווירטואלית
כשהמכונה הווירטואלית פועלת, מתחברים למסוף של המכונה הווירטואלית.
כדי לגשת ל-VM מהמסוף, משתמשים ב-
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