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 VM é 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 VM.

    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, navegue até ao 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á no estado Running. Se a VM não estiver num estado Running state, verifique o manifesto do recurso VirtualMachine para se certificar de que removeu apenas 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?