Crea una VM de Windows a partir de una imagen ISO en clústeres de Anthos en equipos físicos

En este documento, se muestra cómo crear una máquina virtual (VM) de Windows que se inicia desde una ISO mediante Anthos VM Runtime. Cuando se inicia la VM, completa de forma manual la rutina de configuración de Windows.

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

Antes de comenzar

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

Crea un disco virtual para la imagen ISO

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

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

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

    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
    

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

  3. Guarda y cierra el manifiesto en tu editor.

  4. Crea VirtualMachineDisk mediante kubectl:

    kubectl apply -f windows-iso.yaml
    

Crea un disco de controladores de VM

Para iniciar de forma correcta desde una ISO de Windows y completar el proceso de instalación, la VM necesita acceso a los controladores virtio. Para proporcionar los controladores virtio a la VM, completa los siguientes pasos:

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

    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 establece diskType como cdrom. La VM usa este disco durante el proceso de instalación.

  3. Guarda y cierra el manifiesto en tu editor.

  4. Crea VirtualMachineDisk mediante kubectl:

    kubectl apply -f virtio-driver.yaml
    

Crea una VM de Windows

Crea una VM que se inicie desde el VirtualMachineDisk de Windows ISO y conecta el disco de los controladores virtio:

  1. Crea un manifiesto que defina un VirtualMachineDisk para el volumen de inicio 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
    interfaces:
      - name: eth0
        networkName: pod-network
    

    Reemplaza VM_NAME por el nombre que deseas para la VM.

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

  3. Guarda y cierra el manifiesto en tu editor.

  4. Crea el VirtualMachineDisk y VirtualMachine con kubectl:

    kubectl apply -f windows-vm.yaml
    

Conéctate a la VM de Windows y completa la instalación del SO

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

  1. Conéctate a tu VM de Windows:

    kubectl virt vnc VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM de Windows.

  2. En la configuración de Windows, elige realizar una instalación personalizada.

  3. Selecciona Controlador de carga, navega hasta el directorio viostor en el disco virtio y, luego, selecciona el directorio que coincida con la versión de Windows que deseas instalar.

    Para obtener más información, consulta Controladores virtio de Windows Vibe.

  4. Con los controladores de almacenamiento y red de virtio disponibles, completa el resto del proceso de instalación de Windows.

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

Desvincula la imagen ISO y el disco del controlador

Cuando finalice la instalación de Windows, quita el disco del controlador virtio y la imagen ISO de Windows de la VM:

  1. Detén tu VM de Windows:

    kubectl virt stop VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM de Windows.

  2. Usa kubectl para editar la VM:

    kubectl edit gvm VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM de Windows.

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

    Reemplaza VM_NAME por el nombre de la VM de Windows.

  6. Verifica el STATUS de tu VM:

    kubectl get gvm VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM de Windows.

    Asegúrate de que la VM tenga el estado Running. Si la VM no está en un estado Running, revisa el manifiesto de recursos VirtualMachine para asegurarte de que solo quitaste el disco ISO y el disco virtio de Windows. Comprueba que el host tenga suficientes recursos de procesamiento para iniciar la VM.

¿Qué sigue?