Crie uma VM do Windows a partir de uma imagem ISO no Google Distributed Cloud

Este documento mostra como criar uma máquina virtual (VM) do Windows que arranca a partir de um ISO através do tempo de execução da VM no GDC. Quando a VM é iniciada, conclui manualmente a rotina de configuração do Windows.

Também pode criar uma VM do Windows a partir de uma imagem de disco preparada usando uma origem HTTP ou a partir do Cloud Storage.

Antes de começar

Para preencher este documento, precisa de ter acesso aos seguintes recursos:

Crie um disco virtual para a imagem ISO

Para criar com êxito uma VM do Windows, siga os passos e as secções deste documento pela ordem indicada.

Para arrancar a partir de uma imagem ISO do Windows, primeiro crie um VirtualMachineDisk com diskType de cdrom. Use a sua ISO do Windows como origem para este disco.

  1. Crie um manifesto VirtualMachineDisk, como windows-iso.yaml, no editor à sua escolha:

    nano windows-iso.yaml
    
  2. Copie e cole o seguinte manifesto YAML:

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

    Substitua IMG_URL pelo caminho HTTP para a sua ISO do Windows. Também pode criar e usar credenciais para importar uma ISO do Cloud Storage.

  3. Guarde e feche o manifesto no editor.

  4. Crie o VirtualMachineDisk com o kubectl:

    kubectl apply -f windows-iso.yaml
    

Crie um disco de controladores de VM

Para arrancar com êxito a partir de um ISO do Windows e concluir o processo de instalação, a VM precisa de acesso aos controladores virtio. Para fornecer os controladores virtio à VM, conclua os seguintes passos:

  1. Crie um manifesto VirtualMachineDisk, como virtio-driver.yaml, no editor à sua escolha:

    nano virtio-driver.yaml
    
  2. Copie e cole o seguinte manifesto 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 manifesto extrai os controladores virtio mais recentes de um repositório público do Docker e define o diskType como cdrom. A sua VM usa este disco durante o processo de instalação.

  3. Guarde e feche o manifesto no editor.

  4. Crie o VirtualMachineDisk com o kubectl:

    kubectl apply -f virtio-driver.yaml
    

Crie uma VM do Windows

Crie uma VM que arranque a partir da ISO do Windows VirtualMachineDisk e anexe o disco de controladores virtio:

  1. Crie um manifesto que defina um VirtualMachineDisk para o volume de arranque e um VirtualMachine, como windows-vm.yaml, no editor à sua escolha:

    nano windows-vm.yaml
    
  2. Copie e cole o seguinte manifesto 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
    

    Substitua VM_NAME pelo nome que quer dar à sua VM.

    Este manifesto cria um volume de arranque de 100 gibibytes (GiB). Como este volume de arranque está vazio quando a VM é iniciada pela primeira vez, a VM arranca a partir da ISO como um dispositivo de CD-ROM para iniciar a rotina de configuração. Os controladores virtio também estão anexados para concluir o processo de instalação.

  3. Guarde e feche o manifesto no editor.

  4. Crie o VirtualMachineDisk e o VirtualMachine com o kubectl:

    kubectl apply -f windows-vm.yaml
    

Estabeleça ligação à VM do Windows e conclua a instalação do SO

A MV é iniciada e arranca a partir da ISO do Windows na secção anterior. Estabeleça ligação à VM e conclua o processo de instalação do Windows e configure a VM:

  1. Estabeleça ligação à sua VM do Windows:

    kubectl virt vnc VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM do Windows.

    Quando lhe for pedido, introduza as credenciais de utilizador do SO convidado do Windows para a sua MV.

    Para mais informações sobre a utilização do kubectl virt vnc para estabelecer ligação à sua VM, consulte o artigo Estabeleça ligação diretamente através do VNC.

  2. Na configuração do Windows, opte por fazer uma instalação personalizada.

  3. Selecione Carregar controlador, procure o diretório viostor no virtio disco e, de seguida, selecione o diretório que corresponde à versão do Windows que quer instalar.

    Para mais informações, consulte os controladores KubeVirt Windows virtio.

  4. Com os controladores de armazenamento e de rede da virtio agora disponíveis, conclua o resto do processo de instalação do Windows.

    Recomendamos que ative o protocolo de ambiente de trabalho remoto para poder ligar-se diretamente à VM após a instalação.

Desanexe a imagem ISO e o disco de controladores

Após a conclusão da instalação do Windows, remova o disco de controladores virtio e a imagem ISO do Windows da VM:

  1. Pare a VM do Windows:

    kubectl virt stop VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM do Windows.

  2. Use kubectl para editar a VM:

    kubectl edit gvm VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM do Windows.

  3. No editor, atualize a secção spec.disks para remover os discos ISO do Windows e virtio, conforme mostrado no exemplo seguinte. O único disco que resta anexado à VM deve ser o 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. Guarde e feche o manifesto de VM.

  5. Inicie a VM do Windows:

    kubectl virt start VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM do Windows.

  6. Verifique o STATUS da sua VM:

    kubectl get gvm VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM do Windows.

    Certifique-se de que a VM está num estado Running. Se a VM não estiver num estado Running de funcionamento, verifique o manifesto do recurso VirtualMachine para se certificar de que apenas removeu o ISO do Windows e o disco virtio. Verifique se o anfitrião tem recursos de computação suficientes para iniciar a sua VM.

O que se segue?