Créer une VM Windows à partir d'une image ISO dans Google Distributed Cloud

Ce document explique comment créer une machine virtuelle (VM) Windows qui démarre à partir d'une image ISO à l'aide de l'environnement d'exécution de VM sur GDC. Lorsque la VM démarre, vous devez effectuer manuellement la routine de configuration de Windows.

Vous pouvez également créer une VM Windows à partir d'une image de disque préparée à l'aide d'une source HTTP ou à partir de Cloud Storage.

Avant de commencer

Pour suivre les instructions de ce document, vous devez disposer des ressources suivantes :

Créer un disque virtuel pour l'image ISO

Pour créer une VM Windows, suivez les étapes et les sections de ce document dans l'ordre.

Pour démarrer à partir d'une image ISO Windows, créez d'abord un VirtualMachineDisk avec un diskType de cdrom. Utilisez votre ISO Windows comme source pour ce disque.

  1. Créez un fichier manifeste VirtualMachineDisk, tel que windows-iso.yaml, dans l'éditeur de votre choix :

    nano windows-iso.yaml
    
  2. Copiez et collez le fichier manifeste YAML suivant :

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

    Remplacez IMG_URL par le chemin HTTP de votre ISO Windows. Vous pouvez également créer et utiliser des identifiants pour importer une image ISO depuis Cloud Storage.

  3. Enregistrez et fermez le fichier manifeste dans votre éditeur.

  4. Créez VirtualMachineDisk en utilisant kubectl :

    kubectl apply -f windows-iso.yaml
    

Créer un disque de pilotes de VM

Pour démarrer à partir d'une image ISO Windows et terminer le processus d'installation, la VM doit avoir accès aux pilotes virtio. Pour fournir les pilotes virtio à la VM, procédez comme suit:

  1. Créez un fichier manifeste VirtualMachineDisk, tel que virtio-driver.yaml, dans l'éditeur de votre choix :

    nano virtio-driver.yaml
    
  2. Copiez et collez le fichier manifeste YAML suivant :

    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
    

    Ce fichier manifeste extrait les derniers pilotes virtio à partir d'un dépôt Docker public et définit diskType sur cdrom. Votre VM utilise ce disque pendant le processus d'installation.

  3. Enregistrez et fermez le fichier manifeste dans votre éditeur.

  4. Créez VirtualMachineDisk en utilisant kubectl :

    kubectl apply -f virtio-driver.yaml
    

Créer une VM Windows

Créez une VM qui démarre à partir du fichier ISO Windows VirtualMachineDisk et associe le disque de pilotes virtio:

  1. Dans l'éditeur de votre choix, créez un fichier manifeste qui définit un VirtualMachineDisk pour le volume de démarrage et un VirtualMachine, tel que windows-vm.yaml:

    nano windows-vm.yaml
    
  2. Copiez et collez le fichier manifeste YAML suivant :

    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
    

    Remplacez VM_NAME par le nom que vous souhaitez donner à votre VM.

    Ce fichier manifeste crée un volume de démarrage de 100 Gio. Comme ce volume de démarrage est vide au premier démarrage de la VM, la VM démarre à partir de l'ISO en tant qu'appareil CD-ROM pour démarrer la routine de configuration. Les pilotes virtio sont également joints pour finaliser le processus d'installation.

  3. Enregistrez et fermez le fichier manifeste dans votre éditeur.

  4. Créez VirtualMachineDisk et VirtualMachine à l'aide de kubectl:

    kubectl apply -f windows-vm.yaml
    

Se connecter à la VM Windows et terminer l'installation de l'OS

La VM démarre et démarre à partir de l'ISO Windows de la section précédente. Connectez-vous à votre VM, terminez le processus d'installation de Windows et configurez votre VM:

  1. Connectez-vous à votre VM Windows:

    kubectl virt vnc VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM Windows.

    Lorsque vous y êtes invité, saisissez les identifiants utilisateur de l'OS invité Windows pour votre VM.

    Pour en savoir plus sur l'utilisation de kubectl virt vnc pour vous connecter à votre VM, consultez la section Se connecter directement via VNC.

  2. Dans la configuration de Windows, choisissez d'effectuer une installation personnalisée.

  3. Sélectionnez Load driver (Charger le pilote), accédez au répertoire viostor sur le disque virtio, puis sélectionnez le répertoire correspondant à la version de Windows que vous souhaitez installer.

    Pour en savoir plus, consultez la section Pilotes virtio Windows KubeVirt.

  4. Les pilotes de stockage et de réseau de virtio sont désormais disponibles. Terminez le reste du processus d'installation de Windows.

    Nous vous recommandons d'activer le protocole RDP afin de pouvoir vous connecter directement à la VM après l'installation.

Dissocier l'image ISO et le disque de pilotes

Une fois l'installation de Windows terminée, supprimez le disque de pilotes virtio et l'image ISO Windows de la VM:

  1. Arrêtez votre VM Windows:

    kubectl virt stop VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM Windows.

  2. Utilisez kubectl pour modifier la VM :

    kubectl edit gvm VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM Windows.

  3. Dans votre éditeur, mettez à jour la section spec.disks pour supprimer les disques ISO et virtio Windows, comme indiqué dans l'exemple suivant. Le seul disque restant associé à la VM doit être 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:
    ...
    
  4. Enregistrez et fermez le fichier manifeste de la VM.

  5. Démarrez votre VM Windows:

    kubectl virt start VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM Windows.

  6. Vérifiez le STATUS de votre VM :

    kubectl get gvm VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM Windows.

    Vérifiez que votre VM est à l'état Running. Si la VM n'est pas à l'état Running, vérifiez votre fichier manifeste de ressources VirtualMachine pour vous assurer que vous n'avez supprimé que l'ISO Windows et le disque virtio. Vérifiez que l'hôte dispose de suffisamment de ressources de calcul pour démarrer votre VM.

Étape suivante