Criar uma VM com recursos específicos de CPU e memória usando o ambiente de execução da VM no GDC

Este documento é destinado a proprietários de aplicativos e administradores de plataforma que executam o GKE em Bare Metal. Neste documento, mostramos como criar e usar tipos de VM ou especificar manualmente os recursos de CPU e memória ao criar VMs que usam o ambiente de execução de VM na GDC.

Antes de começar

Para concluir este documento, você precisa de acesso aos seguintes recursos:

Criar uma VM

Ao criar uma VM, é possível especificar manualmente os requisitos de CPU e memória. Esse recurso permite criar VMs com os recursos de computação apropriados para atender às necessidades do seu aplicativo.

Para criar uma VM e especificar manualmente os requisitos de CPU e memória, siga as etapas abaixo.

CLI

  • Use kubectl para criar uma VM:

    kubectl virt create vm VM_NAME \
      --image ubuntu20.04 \
      --cpu CPU_NUMBER \
      --memory MEMORY_SIZE
    

    Substitua os seguintes valores:

    • VM_NAME: o nome da VM. Para mais informações sobre restrições de nomes, consulte Nomes e IDs de objetos.
    • CPU_NUMBER: o número de CPUs virtuais (vCPUs) a ser atribuído à VM.
      • É possível atribuir de 1 a 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a ser atribuída à VM.

Manifesto

  1. Crie um manifesto VirtualMachine, como my-custom-vm.yaml, no editor de sua escolha:

    nano my-custom-vm.yaml
    
  2. Copie e cole o seguinte manifesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        cpu:
          vcpus: VCPU_NUMBER
        memory:
          capacity: MEMORY_SIZE
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    Nesse arquivo YAML, defina as seguintes configurações:

    • VM_NAME: o nome da VM. Para mais informações sobre restrições de nomes, consulte Nomes e IDs de objetos.
    • VCPU_NUMBER: o número de vCPUs a serem atribuídas à VM.
      • É possível atribuir de 1 a 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a ser atribuída à VM.

    A VM conecta eth0 à rede pod-network padrão.

    O disco de inicialização chamado VM_NAME-boot-dv já precisa existir. Para mais informações, consulte Criar e gerenciar discos virtuais.

  3. Salve e feche o manifesto da VM no editor.

  4. Crie a VM usando kubectl:

    kubectl apply -f my-custom-vm.yaml
    

Criar e usar tipos de VM

Quando você ativa o ambiente de execução de VM no GDC, uma nova definição de recurso personalizado do VirtualMachineType fica disponível. Essa definição é usada para especificar os recursos de CPU e memória de uma VM. É possível criar tipos de VM para as diferentes cargas de trabalho e aplicar um conjunto consistente de recursos de computação às VMs com base nesses tipos.

Se o ambiente de execução de VMs na GDC estiver ativado no GKE em Bare Metal, o vm-controller-manager vai instalar um tipo de VM predefinido. A definição a seguir mostra o tipo de VM padrão example-machinetype:

  apiVersion: vm.cluster.gke.io/v1
  kind: VirtualMachineType
  metadata:
    name: "example-machinetype"
    labels:
      vm.cluster.gke.io/predefined-machinetype: "true"
  spec:
    cpu:
      vcpus: 2
    memory:
      capacity: 4G

Não é possível atualizar este tipo de VM predefinido. Esse tipo de VM predefinido será reinstalado se não existir no cluster sempre que o vm-controller-manager for iniciado ou reiniciado, como se você tiver excluído o tipo de VM.

Criar um tipo de VM

É possível criar seus próprios tipos de VM para atender às necessidades de computação das cargas de trabalho.

  1. Crie um manifesto de VirtualMachineType, como my-vm-type.yaml, no editor de sua escolha:

    nano my-vm-type.yaml
    
  2. Copie e cole o seguinte manifesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: my-vm-type
    spec:
      cpu:
        vcpus: VCPU_NUMBER
      memory:
        capacity: MEMORY_SIZE
    

    Nesse tipo de VM, você define as seguintes configurações:

    • VM_NAME: o nome da VM. Para mais informações sobre restrições de nomes, consulte Nomes e IDs de objetos.
    • VCPU_NUMBER: o número de vCPUs a serem atribuídas à VM.
      • É possível atribuir de 1 a 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a ser atribuída à VM.
  3. Salve e feche o manifesto do tipo de VM no editor.

  4. Crie o tipo de VM usando kubectl:

    kubectl apply -f my-vm-type.yaml
    

Criar uma VM usando um tipo de VM

Especifique um tipo de VM no manifesto VirtualMachine para aplicar configurações predefinidas de compute à VM.

  1. Crie um manifesto VirtualMachine, como my-custom-vm.yaml, no editor de sua escolha.

    nano my-custom-vm.yaml
    
  2. Copie e cole o seguinte manifesto YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineTypeName: my-vm-type
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    Nesse arquivo YAML, especifique o nome do tipo de VM personalizado que você criou na seção anterior, como my-vm-type, como o valor de virtualMachineTypeName.

    A VM conecta eth0 à rede pod-network padrão.

    O disco de inicialização chamado VM_NAME-boot-dv já precisa existir. Para mais informações, consulte Criar e gerenciar discos virtuais.

  3. Salve e feche o manifesto da VM no editor.

  4. Crie a VM usando kubectl:

    kubectl apply -f my-custom-vm.yaml
    

A seguir