במאמר הזה מוסבר איך ליצור מכונה וירטואלית (VM) של Windows שמבצעת אתחול מקובץ ISO באמצעות VM Runtime ב-GDC. כשמפעילים את מכונת ה-VM, משלימים באופן ידני את תהליך ההגדרה של Windows.
אפשר גם ליצור מכונת Windows וירטואלית מתמונת דיסק מוכנה באמצעות מקור HTTP או מ-Cloud Storage.
לפני שמתחילים
כדי להשלים את המסמך הזה, תצטרכו גישה למקורות המידע הבאים:
- גישה ל-Google Distributed Cloud מגרסה 1.12.0 (
anthosBareMetalVersion: 1.12.0) ואילך של אשכול. אפשר להשתמש בכל סוג של אשכול שיכול להריץ עומסי עבודה. אם צריך, אפשר לנסות את Google Distributed Cloud ב-Compute Engine או לעיין בסקירה הכללית על יצירת אשכולות. - כלי הלקוח
virtctlמותקן כפלאגין שלkubectl. במקרה הצורך, מתקינים את כלי הלקוח virtctl.
יצירת דיסק וירטואלי לתמונת ה-ISO
כדי ליצור מכונת Windows וירטואלית, צריך לפעול לפי השלבים והקטעים במסמך הזה בסדר הנכון.
כדי לבצע אתחול מקובץ ISO של Windows, קודם צריך ליצור VirtualMachineDisk עם diskType של cdrom. משתמשים ב-ISO של Windows כמקור לדיסק הזה.
יוצרים קובץ
VirtualMachineDiskmanifest, כמוwindows-iso.yaml, בכלי העריכה הרצוי:nano windows-iso.yamlמעתיקים ומדביקים את קובץ המניפסט הבא בפורמט YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso spec: source: http: url: IMG_URL size: 10Gi diskType: cdromמחליפים את
IMG_URLבנתיב ה-HTTP לקובץ ה-ISO של Windows. אפשר גם ליצור פרטי כניסה ולהשתמש בהם כדי לייבא קובץ ISO מ-Cloud Storage.שומרים את המניפסט וסוגרים אותו בכלי העריכה.
יצירת
VirtualMachineDiskבאמצעותkubectl:kubectl apply -f windows-iso.yaml
יצירת דיסק של מנהלי התקנים של מכונה וירטואלית
כדי לבצע אתחול בהצלחה מקובץ ISO של Windows ולהשלים את תהליך ההתקנה, למכונה הווירטואלית צריכה להיות גישה לדרייברים של virtio. כדי לספק את מנהלי ההתקנים virtio למכונה הווירטואלית:
יוצרים קובץ
VirtualMachineDiskmanifest, כמוvirtio-driver.yaml, בכלי העריכה הרצוי:nano virtio-driver.yamlמעתיקים ומדביקים את קובץ המניפסט הבא בפורמט YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: virtio-driver spec: size: 1Gi source: registry: url: docker://quay.io/kubevirt/virtio-container-disk:latest diskType: cdromקובץ המניפסט הזה שולף את הדרייברים העדכניים של
virtioממאגר Docker ציבורי ומגדיר אתdiskTypeכ-cdrom. המכונה הווירטואלית משתמשת בדיסק הזה במהלך תהליך ההתקנה.שומרים את המניפסט וסוגרים אותו בכלי העריכה.
יצירת
VirtualMachineDiskבאמצעותkubectl:kubectl apply -f virtio-driver.yaml
יצירת מכונה וירטואלית של Windows
יוצרים מכונה וירטואלית שמבצעת אתחול מקובץ ה-ISO של Windows VirtualMachineDisk ומצרפים את דיסק מנהלי ההתקנים virtio:
יוצרים מניפסט שמגדיר
VirtualMachineDiskלנפח האתחול וVirtualMachine, כמוwindows-vm.yaml, בכלי העריכה הרצוי:nano windows-vm.yamlמעתיקים ומדביקים את קובץ המניפסט הבא בפורמט YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 100Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: osType: Windows disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true - virtualMachineDiskName: windows-iso - virtualMachineDiskName: virtio-driver compute: cpu: vcpus: 2 memory: capacity: 4Gi interfaces: - name: eth0 networkName: pod-networkמחליפים את
VM_NAMEבשם שרוצים לתת למכונה הווירטואלית.קובץ המניפסט הזה יוצר נפח אתחול של 100 גיביבייט (GiB). מכיוון שנפח האתחול הזה ריק כשהמכונה הווירטואלית מופעלת לראשונה, המכונה הווירטואלית מבצעת אתחול מ-ISO כמכשיר CD-ROM כדי להתחיל את תהליך ההגדרה. קובצי ה-
virtioמצורפים גם הם כדי להשלים את תהליך ההתקנה.שומרים את המניפסט וסוגרים אותו בכלי העריכה.
יוצרים את
VirtualMachineDiskואתVirtualMachineבאמצעותkubectl:kubectl apply -f windows-vm.yaml
התחברות ל-VM של Windows והשלמת ההתקנה של מערכת ההפעלה
המכונה הווירטואלית מופעלת ומבצעת אתחול מקובץ ה-ISO של Windows שבקטע הקודם. מתחברים ל-VM, משלימים את תהליך ההתקנה של Windows ומגדירים את ה-VM:
מתחברים ל-VM של Windows:
kubectl virt vnc VM_NAMEמחליפים את
VM_NAMEבשם של מכונת Windows הווירטואלית.כשמוצגת בקשה, מזינים את פרטי הכניסה של משתמש מערכת ההפעלה האורחת של Windows למכונה הווירטואלית.
מידע נוסף על שימוש ב-
kubectl virt vncכדי להתחבר ל-VM זמין במאמר התחברות ישירה באמצעות VNC.בהגדרות של Windows, בוחרים באפשרות התקנה בהתאמה אישית.
בוחרים באפשרות Load driver (טעינת מנהל התקן), עוברים לספרייה viostor בדיסק
virtio, ואז בוחרים את הספרייה שתואמת לגרסת Windows שרוצים להתקין.מידע נוסף זמין במאמר בנושא מנהלי התקנים של KubeVirt Windows
virtio.עכשיו, כשמנהלי ההתקנים של האחסון והרשת מ-
virtioזמינים, אפשר להשלים את שאר תהליך ההתקנה של Windows.מומלץ להפעיל את פרוטוקול שולחן העבודה המרוחק כדי שתוכלו להתחבר ישירות למכונה הווירטואלית אחרי ההתקנה.
מנתקים את קובץ ה-ISO ואת דיסק הדרייברים
אחרי שההתקנה של Windows מסתיימת, מסירים את דיסק מנהלי ההתקנים virtio ואת קובץ ה-ISO של Windows מהמכונה הווירטואלית:
מפסיקים את ה-VM של Windows:
kubectl virt stop VM_NAMEמחליפים את
VM_NAMEבשם של מכונת Windows הווירטואלית.משתמשים ב-
kubectlכדי לערוך את המכונה הווירטואלית:kubectl edit gvm VM_NAMEמחליפים את
VM_NAMEבשם של מכונת Windows הווירטואלית.בקטע
spec.disksבכלי לעריכת מוצרים, מסירים את הדיסקים של Windows ISO ו-virtio, כמו בדוגמה הבאה. הדיסק היחיד שצריך להישאר מחובר ל-VM הואVM_NAME-boot-dv:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: windows-vm spec: osType: Windows disks: - virtualMachineDiskName: windows-vm-boot-dv boot: true interfaces: ...שומרים וסוגרים את מניפסט המכונה הווירטואלית.
מפעילים את מכונת ה-VM של Windows:
kubectl virt start VM_NAMEמחליפים את
VM_NAMEבשם של מכונת Windows הווירטואלית.בודקים את
STATUSשל מכונת ה-VM:kubectl get gvm VM_NAMEמחליפים את
VM_NAMEבשם של מכונת Windows הווירטואלית.מוודאים שהמכונה הווירטואלית נמצאת במצב
Running. אם המכונה הווירטואלית לא במצבRunning, צריך לבדוק את מניפסט המשאביםVirtualMachineכדי לוודא שהסרתם רק את קובץ ה-ISO של Windows ואת הדיסקvirtio. בודקים שלמארח יש מספיק משאבי מחשוב כדי להפעיל את המכונה הווירטואלית.