Criar e iniciar uma instância de VM

Este documento explica como criar uma instância de máquina virtual (VM) usando uma imagem ou um snapshot de disco de inicialização.

É possível criar uma VM com um ou mais discos. Também é possível adicionar discos à VM depois da criação. O Distributed Cloud inicia automaticamente a instância de VM após a criação.

É possível adicionar scripts de inicialização a uma VM antes ou depois da criação. Para ler mais sobre scripts de inicialização, consulte a página Usar um script de inicialização com uma instância de VM.

Esta página é destinada a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que criam e gerenciam VMs em um ambiente isolado do Google Distributed Cloud (GDC). Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para usar os comandos da interface de linha de comando (CLI) gdcloud, verifique se você baixou, instalou e configurou a CLI gdcloud. Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).

Extrair o caminho do arquivo kubeconfig

Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:

  1. Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.

  2. Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir MANAGEMENT_API_SERVER nestas instruções.

Solicitar permissões e acesso

Para realizar as tarefas listadas nesta página, você precisa ter os papéis do IAM necessários atribuídos:

  • Administrador de máquinas virtuais do projeto: gerencia VMs no namespace do projeto.
  • Leitor do projeto: tem acesso somente leitura a todos os recursos nos namespaces do projeto.

Siga as etapas para verificar seu acesso. Caso contrário, peça ao administrador do IAM do projeto para atribuir a você os papéis de administrador de máquina virtual do projeto (project-vm-admin) e leitor do projeto (project-viewer) no namespace do projeto em que a VM reside.

Criar uma instância de VM a partir de uma imagem

Nesta seção, descrevemos como criar uma VM usando uma imagem do SO fornecida pelo GDC ou uma imagem do SO personalizada.

Conferir uma lista de imagens disponíveis fornecidas pelo GDC

Antes de criar uma VM usando uma imagem fornecida pelo GDC, revise a lista de imagens disponíveis. Consulte imagens de VM compatíveis para mais informações sobre imagens fornecidas pelo GDC.

gdcloud

  • Liste todas as imagens disponíveis e o tamanho mínimo do disco:

    gdcloud compute images list
    

    Esse comando inclui imagens fornecidas pelo GDC e personalizadas. Escolha uma das imagens no namespace vm-system.

API

  1. Liste todas as imagens fornecidas pelo GDC disponíveis:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog
    
  2. Receba o minimumDiskSize de uma imagem específica fornecida pelo GDC:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Substitua:

    • MANAGEMENT_API_SERVER: o arquivo kubeconfig do servidor da API Management.
    • BOOT_DISK_IMAGE_NAME: o nome da imagem.

Criar uma instância de VM com uma imagem fornecida pelo GDC

Por padrão, todos os projetos do GDC podem criar VMs com imagens do SO fornecidas pelo GDC.

Console

  1. No menu de navegação, selecione Máquinas virtuais > Instâncias.
  2. Clique em Criar instância.
  3. No campo Nome, especifique um nome para a VM.
  4. Selecione a zona em que a VM será criada.
  5. Opcional: clique em Adicionar rótulos para atribuir rótulos à VM. Isso ajuda a organizar as instâncias de VM.
  6. Selecione a configuração de máquina a ser usada na VM:
    1. Uso geral: verifique se o tipo de máquina está alinhado aos requisitos da sua carga de trabalho.
    2. Personalizado: defina o número de núcleos e os requisitos de memória para sua máquina.
  7. Clique em Próxima.
  8. Se quiser ativar o acesso externo, selecione Permitir acesso externo.
  9. Clique em Próxima.
  10. Na seção Disco de inicialização, um disco de inicialização com configurações padrão é adicionado automaticamente. Você pode manter essa configuração ou clicar em Mudar para modificar as configurações padrão:
    1. Na seção Detalhes do disco, modifique o Nome do disco.
    2. Na seção Configurações de disco, modifique o valor de Tamanho.
    3. Na seção Imagem de origem, clique no menu Nome da imagem e selecione uma das imagens.
    4. Marque ou desmarque a opção Ativar a inicialização segura. Se você estiver usando uma imagem do Windows, a inicialização segura precisa estar ativada.
    5. Selecione Manter disco ou Excluir disco para configurar a regra de exclusão de disco.
    6. Clique em Salvar.
  11. Clique em Criar para gerar a instância de VM.

gdcloud

  1. Selecione uma imagem fornecida pelo GDC para criar a instância de VM:

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=vm-system \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Substitua:

    VariávelDefinição
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20GB.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    gdcloud compute machine-types list

API

  1. Selecione uma imagem fornecida pelo GDC para criar a instância de VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Substitua:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    PROJECT O projeto do GDC para criar a VM.
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    gdcloud compute machine-types list
  2. Verifique se a VM foi criada e aguarde até que ela mostre o estado Running. O estado Running não indica que o SO está totalmente pronto e acessível.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    Substitua VM_NAME e PROJECT pelo nome e projeto da VM.

    Para adicionar um script de inicialização à criação da instância de VM, siga as etapas fornecidas na página Usar um script de inicialização com uma instância de VM. Encerre a VM antes de adicionar o script.

Criar uma instância de VM com base em uma imagem personalizada

Uma imagem personalizada pertence exclusivamente ao seu projeto. Para criar uma VM com uma imagem personalizada, primeiro crie uma imagem personalizada no mesmo projeto.

Console

  1. No menu de navegação, selecione Máquinas virtuais > Instâncias.
  2. Clique em Criar instância.
  3. No campo Nome, especifique um nome para a VM.
  4. Selecione a zona em que a VM será criada.
  5. Opcional: clique em Adicionar rótulos para atribuir rótulos à VM. Isso ajuda a organizar as instâncias de VM.
  6. Selecione a configuração de máquina a ser usada na VM:
    1. Uso geral: verifique se o tipo de máquina está alinhado aos requisitos da sua carga de trabalho.
    2. Personalizado: defina o número de núcleos e os requisitos de memória para sua máquina.
  7. Clique em Próxima.
  8. Marque a caixa de seleção Permitir acesso externo para ativar o acesso externo à sua instância de VM.
  9. Clique em Próxima.
  10. Na seção Disco de inicialização, um disco de inicialização com configurações padrão é adicionado automaticamente. Você pode manter essa configuração ou clicar em Mudar para modificar as configurações padrão:
    1. Na seção Detalhes do disco, modifique o Nome do disco.
    2. Na seção Configurações de disco, modifique o valor de Tamanho.
    3. Na seção Imagem de origem, clique no menu Nome da imagem e selecione uma das imagens com o subtexto Criada pelo cliente.
    4. Marque ou desmarque a opção Ativar a inicialização segura. Se você estiver usando uma imagem do Windows, a inicialização segura precisa estar ativada.
    5. Selecione Manter disco ou Excluir disco para configurar a regra de exclusão de disco.
    6. Clique em Salvar.
  11. Clique em Criar para gerar a instância de VM.

gdcloud

  1. Listar todas as imagens personalizadas:

    gdcloud compute images list --no-standard-images=true
    
  2. Crie a instância da VM.

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Substitua:

    VariávelDefinição
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20GB.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    gdcloud compute machine-types list

API

  1. Listar todas as imagens personalizadas:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog
    

    Receba o minimumDiskSize de uma imagem específica para criar uma instância de VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Substitua:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    BOOT_DISK_IMAGE_NAME O nome da imagem escolhida no comando para listar todas as imagens personalizadas.
    PROJECT O projeto da imagem.
  2. Crie a instância da VM.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Substitua:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    PROJECT O projeto do GDC para criar a VM.
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. Verifique se a VM foi criada e aguarde até que ela mostre que está no estado Running. Estar no estado Running não significa que o SO está totalmente pronto e acessível.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    Substitua VM_NAME e PROJECT pelo nome e projeto da VM.

Criar uma instância de VM com discos extras que não são de inicialização

É possível criar discos que não são de inicialização ao criar uma VM. Cada disco adicional pode especificar ou não uma origem de imagem. O último caso é para criar um disco em branco.

Console

  1. No menu de navegação, selecione Máquinas virtuais > Instâncias.
  2. Clique em Criar instância.
  3. No campo Nome, especifique um nome para a VM.
  4. Selecione a zona em que a VM será criada.
  5. Opcional: clique em Adicionar rótulos para atribuir rótulos à VM. Isso ajuda a organizar as instâncias de VM.
  6. Selecione a configuração de máquina a ser usada na VM:
    1. Uso geral: verifique se o tipo de máquina está alinhado aos requisitos da sua carga de trabalho.
    2. Personalizado: defina o número de núcleos e os requisitos de memória para sua máquina.
  7. Clique em Próxima.
  8. Marque a caixa de seleção Permitir acesso externo para ativar o acesso externo à sua instância de VM.
  9. Clique em Próxima.
  10. Na seção Disco de inicialização, um disco de inicialização com configurações padrão é adicionado automaticamente. Você pode manter essa configuração ou clicar em Mudar para modificar as configurações padrão:
    1. Na seção Detalhes do disco, modifique o Nome do disco.
    2. Na seção Configurações de disco, modifique o valor de Tamanho.
    3. Na seção Imagem de origem, clique no menu Nome da imagem e selecione uma das imagens.
    4. Marque ou desmarque a opção Ativar a inicialização segura. Se você estiver usando uma imagem do Windows, a inicialização segura precisa estar ativada.
    5. Selecione Manter disco ou Excluir disco para configurar a regra de exclusão de disco.
    6. Clique em Salvar.
  11. Para adicionar mais discos à instância de VM, selecione Adicionar novo disco:
    1. Atribua um nome ao disco da VM.
    2. Configure o tamanho do disco e as configurações de anexação.
    3. Clique em Salvar.
  12. Clique em Criar para gerar a instância de VM.

gdcloud

  1. Crie um disco com base em uma imagem:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
      --size=NON_BOOT_DISK_SIZE \
      --image=NON_BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. Crie um disco com base em uma imagem em branco:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
      --size=NON_BOOT_BLANK_DISK_SIZE
    
  3. Crie uma instância com os discos da etapa anterior:

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
      --disk=name=NON_BOOT_DISK_FROM_IMAGE \
      --disk=name=NON_BOOT_BLANK_DISK
    

    Substitua:

    VariávelDefinição
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_IMAGE_NAMESPACE O namespace da imagem a ser usada para o disco de inicialização da nova VM. Use vm-system para uma imagem fornecida pela GDC ou deixe o campo em branco para uma imagem personalizada.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20GB.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    gdcloud compute machine-types list

    Nos discos extras, substitua:

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: o nome do disco adicional.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: o tamanho dos discos adicionais, por exemplo, 20GB.
    • NON_BOOT_DISK_IMAGE_NAME: o nome da imagem a ser usada como um disco que não é de inicialização.
    • NON_BOOT_DISK_IMAGE_NAMESPACE: o namespace da imagem a ser usada como disco que não é de inicialização. Use vm-system para uma imagem fornecida pela GDC ou deixe o campo em branco para uma imagem personalizada.

API

  1. Crie uma VM com um disco que não seja de inicialização:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_DISK_FROM_IMAGE
    spec:
      source:
        image:
          name: NON_BOOT_DISK_IMAGE_NAME
          namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
      size: NON_BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_BLANK_DISK
    spec:
      size: NON_BOOT_BLANK_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: BOOT_DISK_IMAGE_NAMESPACE
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
      - virtualMachineDiskRef:
          name: NON_BOOT_DISK_FROM_IMAGE
      - virtualMachineDiskRef:
          name: NON_BOOT_BLANK_DISK
    EOF
    

    Substitua:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    PROJECT O projeto do GDC a ser criado na VM.
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_IMAGE_NAMESPACE O namespace da imagem a ser usada para o disco de inicialização da nova VM. Use o namespace vm-system para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

    Nos discos extras, substitua:

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: o nome do disco adicional.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: o tamanho dos discos adicionais, por exemplo, 20Gi.
    • NON_BOOT_DISK_IMAGE_NAME: o nome da imagem que você quer usar como disco que não é de inicialização.
    • NON_BOOT_DISK_IMAGE_NAMESPACE: o namespace da imagem que você quer usar como disco que não é de inicialização. Use o namespace vm-system para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada.

    Formate e ative os discos antes de usá-los.

Criar uma VM de um snapshot ou backup

É possível criar uma nova VM a partir de um snapshot das seguintes maneiras:

  • Restaurar um disco de inicialização de VM: se você fez backup de um disco de inicialização de uma VM com um snapshot, use-o para criar uma nova VM. Para mais informações, consulte Restaurar um snapshot.
    • Restaurar um disco que não é de inicialização:se você fez backup de um disco que não é de inicialização com um snapshot, também é possível restaurar o snapshot para um novo disco que não é de inicialização ao criar uma VM, usando as mesmas instruções.

Para criar mais de uma VM com o mesmo disco de inicialização, faça o seguinte:

  1. Crie uma imagem personalizada.
  2. Crie VMs com essa imagem sem usar um snapshot.

Criar uma VM sem usar o tipo de máquina

O Distributed Cloud oferece tipos de máquinas predefinidos que podem ser usados ao criar uma instância de VM. Um tipo de máquina predefinido tem um número predefinido de vCPUs e uma quantidade de memória.

Se as VMs predefinidas não atenderem às suas necessidades, crie uma instância de VM com configurações personalizadas de hardware virtualizado.

As VMs personalizadas são ideais nos seguintes cenários:

  • Cargas de trabalho que não são aplicáveis aos tipos de VM predefinidos.
  • Cargas de trabalho que exigem mais potência de processamento ou mais memória, mas não precisam de todos os upgrades fornecidos pelo próximo nível de tipo de máquina.

Console

  1. No menu de navegação, selecione Máquinas virtuais > Instâncias.
  2. Clique em Criar instância.
  3. No campo Nome, especifique um nome para a VM.
  4. Selecione a zona em que a VM será criada.
  5. Opcional: clique em Adicionar rótulos para atribuir rótulos à VM. Isso ajuda a organizar as instâncias de VM.
  6. Clique em Personalizado e defina o número de núcleos e os requisitos de memória para sua máquina.
  7. Clique em Próxima.
  8. Marque a caixa de seleção Permitir acesso externo para ativar o acesso externo à sua instância de VM.
  9. Clique em Próxima.
  10. Na seção Disco de inicialização, um disco de inicialização com configurações padrão é adicionado automaticamente. Você pode manter essa configuração ou clicar em Mudar para modificar as configurações padrão:
    1. Na seção Detalhes do disco, modifique o Nome do disco.
    2. Na seção Configurações de disco, modifique o valor de Tamanho.
    3. Na seção Imagem de origem, clique no menu Nome da imagem e selecione uma das imagens com o subtexto Criada pelo cliente.
    4. Marque ou desmarque a opção Ativar a inicialização segura. Se você estiver usando uma imagem do Windows, a inicialização segura precisa estar ativada.
    5. Selecione Manter disco ou Excluir disco para configurar a regra de exclusão de disco.
    6. Clique em Salvar.
  11. Se quiser adicionar mais discos à instância de VM, selecione Adicionar novo disco.
    1. Atribua um nome ao disco da VM.
    2. Configure o tamanho do disco e as configurações de anexação.
    3. Clique em Salvar.
  12. Clique em Criar para gerar a instância de VM.

gdcloud

  1. Crie uma VM com um tipo de máquina definido por você:

    gdcloud compute instances create VM_NAME \
      --custom-cpu=NUM_VCPU \
      --custom-memory=MEMORY \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Substitua:

    VariávelDefinição
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20GB.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    NON_BOOT_DISK_IMAGE_NAMESPACE O namespace da imagem que você quer usar como um disco não inicializável. Use o namespace vm-system para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada.
    NUM_VCPU O número de vCPUs. O número máximo de vCPUs aceitas é 192.
    MEMORY O tamanho da memória, como 8GB. O tamanho máximo da memória é de um terabyte (TB).

API

  1. Crie uma VM com um tipo de máquina definido por você:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Substitua:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    PROJECT O projeto do Distributed Cloud para criar a VM.
    VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
    VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
    BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
    NON_BOOT_DISK_IMAGE_NAMESPACE O namespace da imagem que você quer usar como um disco não inicializável. Use o namespace vm-system para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada.
    BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
    Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
    BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
    NUM_VCPU O número de vCPUs. O número máximo de vCPUs aceitas é 192.
    MEMORY O tamanho da memória, como 8GB. O tamanho máximo da memória é de um TB.

Criar uma instância de VM com um endereço IP e uma sub-rede especificados

Por padrão, é possível criar uma VM do Distributed Cloud sem a especificação de rede. Esse tipo de VM é anexado à nuvem privada virtual (VPC) padrão e atribui dinamicamente um IP da sub-rede padrão. Para criar uma VM com as configurações padrão, consulte Criar uma VM com uma imagem fornecida pelo GDC.

Se você não quiser usar a configuração de IP padrão para sua VM do Distributed Cloud, crie uma VM com um endereço IP dinâmico ou estático:

  • IP dinâmico de uma sub-rede personalizada: você cria uma sub-rede com um CIDR específico e uma VM com um IP atribuído dinamicamente desse CIDR.

  • IP estático de uma sub-rede personalizada: você cria uma sub-rede com um CIDR específico e uma VM com um IP estático desse CIDR.

Nesta seção, mostramos como criar uma VM com um endereço atribuído dinamicamente ou com um endereço IP estático.

Criar uma VM com um IP atribuído dinamicamente de uma sub-rede personalizada

Crie uma VM com um IP atribuído dinamicamente de um CIDR específico:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
   EOF

Substitua as seguintes variáveis:

VariávelDefinição
MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
PROJECT O projeto do Distributed Cloud para criar a VM.
VM_NAME O nome da nova VM. O nome só pode conter caracteres alfanuméricos e traços, com um máximo de 53 caracteres.
VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Selecione um tipo de máquina disponível:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME O nome da sub-rede personalizada.

Criar uma VM com um IP estático de uma sub-rede

Crie uma VM com um IP estático de uma sub-rede personalizada:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply  -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
         ipAddresses:
         - address: IP_ADDRESS
   EOF

Substitua as seguintes variáveis:

VariávelDefinição
MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
PROJECT O projeto do Distributed Cloud para criar a VM.
VM_NAME O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres.
VM_BOOT_DISK_NAME O nome do novo disco de inicialização da VM.
BOOT_DISK_IMAGE_NAME O nome da imagem a ser usada para o disco de inicialização da nova VM.
BOOT_DISK_SIZE O tamanho do disco de inicialização, como 20Gi.
Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização.
BOOT_DISK_AUTO_DELETE true ou false, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.
MACHINE_TYPE O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute o seguinte:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME O nome da sub-rede personalizada.
IP_ADDRESS O endereço IP. Ele precisa estar no intervalo da sub-rede escolhida. Só é possível especificar um endereço IP no campo ipAddresses.