Crear una máquina virtual Windows a partir de una imagen ISO en Google Distributed Cloud

En este documento se explica cómo crear una máquina virtual de Windows que arranque desde una ISO mediante VM Runtime en GDC. Cuando se inicie la VM, completa manualmente la rutina de configuración de Windows.

También puedes crear una VM de Windows a partir de una imagen de disco preparada mediante una fuente HTTP o desde Cloud Storage.

Antes de empezar

Para completar este documento, necesitas tener acceso a los siguientes recursos:

Crea un disco virtual para la imagen ISO

Para crear una VM de Windows correctamente, sigue los pasos y las secciones de este documento en orden.

Para arrancar desde una imagen ISO de Windows, primero crea un VirtualMachineDisk con diskType de cdrom. Usa tu ISO de Windows como fuente de este disco.

  1. Crea un archivo de manifiesto VirtualMachineDisk, como windows-iso.yaml, en el editor que prefieras:

    nano windows-iso.yaml
    
  2. Copia y pega el siguiente manifiesto YAML:

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

    Sustituye IMG_URL por la ruta HTTP a tu ISO de Windows. También puedes crear y usar credenciales para importar una ISO desde Cloud Storage.

  3. Guarda y cierra el archivo de manifiesto en tu editor.

  4. Crea el VirtualMachineDisk con kubectl:

    kubectl apply -f windows-iso.yaml
    

Crear un disco de controladores de VM

Para arrancar correctamente desde una ISO de Windows y completar el proceso de instalación, la máquina virtual necesita acceso a los controladores virtio. Para proporcionar los controladores virtio a la VM, sigue estos pasos:

  1. Crea un archivo de manifiesto VirtualMachineDisk, como virtio-driver.yaml, en el editor que prefieras:

    nano virtio-driver.yaml
    
  2. Copia y pega el siguiente manifiesto 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
    

    Este manifiesto extrae los controladores virtio más recientes de un repositorio público de Docker y define diskType como cdrom. Tu VM usa este disco durante el proceso de instalación.

  3. Guarda y cierra el archivo de manifiesto en tu editor.

  4. Crea el VirtualMachineDisk con kubectl:

    kubectl apply -f virtio-driver.yaml
    

Crear una VM de Windows

Crea una VM que arranque desde la ISO de Windows VirtualMachineDisk y adjunta el disco de controladores virtio:

  1. Crea un archivo de manifiesto que defina un VirtualMachineDisk para el volumen de arranque y un VirtualMachine, como windows-vm.yaml, en el editor que elijas:

    nano windows-vm.yaml
    
  2. Copia y pega el siguiente manifiesto 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
    

    Sustituye VM_NAME por el nombre que quieras asignar a tu VM.

    Este manifiesto crea un volumen de arranque de 100 gibibytes (GiB). Como este volumen de arranque está vacío cuando se inicia la VM por primera vez, la VM se inicia desde la ISO como un dispositivo CD-ROM para iniciar la rutina de configuración. Los controladores de virtio también se adjuntan para completar el proceso de instalación.

  3. Guarda y cierra el archivo de manifiesto en tu editor.

  4. Crea VirtualMachineDisk y VirtualMachine con kubectl:

    kubectl apply -f windows-vm.yaml
    

Conectarse a una VM de Windows y completar la instalación del SO

La VM se inicia y arranca desde la ISO de Windows de la sección anterior. Conéctate a tu VM, completa el proceso de instalación de Windows y configura tu VM:

  1. Conéctate a tu VM de Windows:

    kubectl virt vnc VM_NAME
    

    Sustituye VM_NAME por el nombre de tu VM Windows.

    Cuando se te pida, introduce las credenciales de usuario del SO invitado de Windows de tu máquina virtual.

    Para obtener más información sobre cómo usar kubectl virt vnc para conectarte a tu VM, consulta Conectarse directamente mediante VNC.

  2. En la configuración de Windows, elige la opción Instalación personalizada.

  3. Selecciona Cargar controlador, busca el directorio viostor en el disco virtio y, a continuación, selecciona el directorio que coincida con la versión de Windows que quieras instalar.

    Para obtener más información, consulta los controladores de Windows virtio de KubeVirt.

  4. Ahora que tienes los controladores de almacenamiento y de red de virtio, completa el resto del proceso de instalación de Windows.

    Te recomendamos que habilites el protocolo de escritorio remoto para poder conectarte directamente a la VM después de la instalación.

Desmonta la imagen ISO y el disco de controladores

Una vez que se haya completado la instalación de Windows, quita el disco de controladores virtio y la imagen ISO de Windows de la VM:

  1. Detén tu VM de Windows:

    kubectl virt stop VM_NAME
    

    Sustituye VM_NAME por el nombre de tu VM Windows.

  2. Usa kubectl para editar la VM:

    kubectl edit gvm VM_NAME
    

    Sustituye VM_NAME por el nombre de tu VM Windows.

  3. En el editor, actualice la sección spec.disks para quitar los discos ISO de Windows y virtio, tal como se muestra en el siguiente ejemplo. El único disco que debe quedar conectado a la VM es el 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. Guarda y cierra el manifiesto de la VM.

  5. Inicia tu VM de Windows:

    kubectl virt start VM_NAME
    

    Sustituye VM_NAME por el nombre de tu VM Windows.

  6. Comprueba el STATUS de tu VM:

    kubectl get gvm VM_NAME
    

    Sustituye VM_NAME por el nombre de tu VM Windows.

    Asegúrate de que tu VM esté en estado Running. Si la VM no está en estado Running, comprueba el manifiesto de recursos VirtualMachine para asegurarte de que solo has quitado la ISO de Windows y el disco virtio. Comprueba que el host tenga suficientes recursos informáticos para iniciar la VM.

Siguientes pasos