Windows-VM aus ISO-Image in Google Distributed Cloud erstellen

In diesem Dokument erfahren Sie, wie Sie eine Windows-VM erstellen, die mit VM Laufzeit in GDC von einem ISO-Image bootet. Wenn die VM gestartet wird, führen Sie die Windows-Einrichtung manuell durch.

Sie können auch eine Windows-VM aus einem vorbereiteten Laufwerk-Image über eine HTTP-Quelle oder aus Cloud Storage erstellen.

Vorbereitung

Um dieses Dokument abzuschließen, benötigen Sie Zugriff auf die folgenden Ressourcen:

Virtuelles Laufwerk für das ISO-Image erstellen

Folgen Sie der Anleitung in diesem Dokument der Reihe nach, um eine Windows-VM zu erstellen.

Wenn Sie von einem Windows-ISO-Image booten möchten, erstellen Sie zuerst eine VirtualMachineDisk mit einer diskType von cdrom. Verwenden Sie Ihre Windows-ISO-Datei als Quelle für dieses Laufwerk.

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachineDisk-Manifest wie windows-iso.yaml.

    nano windows-iso.yaml
    
  2. Kopieren Sie das folgende YAML-Manifest und fügen Sie es ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: windows-iso
    spec:
      source:
        http:
          url: IMG_URL
      size: 10Gi
      diskType: cdrom
    

    Ersetzen Sie IMG_URL durch den HTTP-Pfad zu Ihrer Windows-ISO. Sie können auch Anmeldedaten erstellen und verwenden, um ein ISO-Image aus Cloud Storage zu importieren.

  3. Speichern und schließen Sie das Manifest in Ihrem Editor.

  4. Erstellen Sie VirtualMachineDisk mit kubectl:

    kubectl apply -f windows-iso.yaml
    

VM-Treiberlaufwerk erstellen

Damit die VM von einem Windows-ISO-Image booten und die Installation abschließen kann, benötigt sie Zugriff auf die virtio-Treiber. Führen Sie die folgenden Schritte aus, um der VM die virtio-Treiber zur Verfügung zu stellen:

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachineDisk-Manifest wie virtio-driver.yaml.

    nano virtio-driver.yaml
    
  2. Kopieren Sie das folgende YAML-Manifest und fügen Sie es ein:

    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
    

    Dieses Manifest ruft die neuesten virtio-Treiber aus einem öffentlichen Docker-Repository ab und legt diskType als cdrom fest. Dieses Laufwerk wird von Ihrer VM während der Installation verwendet.

  3. Speichern und schließen Sie das Manifest in Ihrem Editor.

  4. Erstellen Sie VirtualMachineDisk mit kubectl:

    kubectl apply -f virtio-driver.yaml
    

Erstellen Sie eine Windows-VM:

Erstellen Sie eine VM, die von der Windows-ISO VirtualMachineDisk aus startet und das Treiberlaufwerk virtio anhängt:

  1. Erstellen Sie in einem Editor Ihrer Wahl ein Manifest, das eine VirtualMachineDisk für das Bootvolume und eine VirtualMachine wie windows-vm.yaml definiert:

    nano windows-vm.yaml
    
  2. Kopieren Sie das folgende YAML-Manifest und fügen Sie es ein:

    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
    

    Ersetzen Sie VM_NAME durch den gewünschten Namen für die VM.

    Dieses Manifest erstellt ein Bootvolume mit einer Größe von 100 Gibibyte (GiB). Da dieses Boot-Volume beim ersten Starten der VM leer ist, wird die VM vom ISO als CD-ROM-Gerät gestartet, um die Einrichtungsroutine zu starten. Die virtio-Treiber sind ebenfalls angehängt, um die Installation abzuschließen.

  3. Speichern und schließen Sie das Manifest in Ihrem Editor.

  4. Erstellen Sie VirtualMachineDisk und VirtualMachine mit kubectl:

    kubectl apply -f windows-vm.yaml
    

Verbindung zur Windows-VM herstellen und Betriebssysteminstallation abschließen

Die VM wird gestartet und von der Windows-ISO aus dem vorherigen Abschnitt gestartet. Stellen Sie eine Verbindung zu Ihrer VM her, führen Sie die Windows-Installation durch und konfigurieren Sie die VM:

  1. Stellen Sie eine Verbindung zu Ihrer Windows-VM her.

    kubectl virt vnc VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen Ihrer Windows-VM.

    Geben Sie bei entsprechender Aufforderung die Gastnutzer-Anmeldedaten des Windows-betriebssystems für Ihre VM ein.

    Weitere Informationen zum Herstellen einer Verbindung zu Ihrer VM über kubectl virt vnc finden Sie unter Direkte Verbindung über VNC.

  2. Wählen Sie in der Windows-Einrichtung die Option Benutzerdefinierte Installation aus.

  3. Wählen Sie Treiber laden aus, rufen Sie das Verzeichnis viostor auf dem Laufwerk virtio auf und wählen Sie dann das Verzeichnis aus, das der Version von Windows entspricht, die Sie installieren möchten.

    Weitere Informationen finden Sie unter KubeVirt Windows virtio-Treiber.

  4. Da die Speicher- und Netzwerktreiber von virtio jetzt verfügbar sind, können Sie mit der restlichen Installation von Windows fortfahren.

    Wir empfehlen, das Remote Desktop Protocol zu aktivieren, damit Sie nach der Installation direkt eine Verbindung zur VM herstellen können.

ISO-Image und Treiberlaufwerk trennen

Entfernen Sie nach Abschluss der Windows-Installation das virtio-Laufwerk mit den Treibern und das Windows-ISO-Image aus der VM:

  1. Beenden Sie die Windows-VM:

    kubectl virt stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen Ihrer Windows-VM.

  2. Verwenden Sie kubectl zum Bearbeiten der VM:

    kubectl edit gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen Ihrer Windows-VM.

  3. Aktualisieren Sie in Ihrem Editor den Abschnitt spec.disks, um die Windows-ISO und die virtio-Laufwerke zu entfernen, wie im folgenden Beispiel gezeigt. Das einzige Laufwerk, das noch an die VM angehängt ist, sollte VM_NAME-boot-dv sein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: windows-vm
    spec:
      osType: Windows
      disks:
        - virtualMachineDiskName: windows-vm-boot-dv
          boot: true
      interfaces:
    ...
    
  4. Speichern und schließen Sie das VM-Manifest.

  5. Starten Sie die Windows-VM:

    kubectl virt start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen Ihrer Windows-VM.

  6. Prüfen Sie den STATUS Ihrer VM:

    kubectl get gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen Ihrer Windows-VM.

    Achten Sie darauf, dass die VM den Status Running hat. Wenn die VM nicht den Status Running hat, prüfen Sie das Ressourcenmanifest VirtualMachine, um sicherzustellen, dass Sie nur das Windows-ISO und das virtio-Laufwerk entfernt haben. Prüfen Sie, ob der Host genügend Rechenressourcen zum Starten Ihrer VM hat.

Nächste Schritte