Crie uma VM com recursos específicos de CPU e memória através do tempo de execução de VMs no GDC

Este documento destina-se a proprietários de aplicações e administradores de plataformas que executam o Google Distributed Cloud. Este documento mostra-lhe como criar e usar tipos de VMs ou especificar manualmente recursos de CPU e memória quando cria VMs que usam o VM Runtime no GDC.

Antes de começar

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

Crie uma VM

Quando cria uma VM, pode especificar manualmente os requisitos de CPU e memória. Esta capacidade permite-lhe criar VMs com os recursos de computação adequados para corresponder às necessidades da sua aplicação.

Para criar uma VM e especificar manualmente os requisitos de CPU e memória, siga os passos seguintes.

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 sua 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 atribuir à VM.
      • Pode atribuir entre 1 e 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a atribuir à VM.

Manifesto

  1. Crie um VirtualMachinemanifesto, como my-custom-vm.yaml, no editor da 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
    

    Neste ficheiro YAML, defina as seguintes definições:

    • VM_NAME: o nome da sua VM. Para mais informações sobre restrições de nomes, consulte Nomes e IDs de objetos.
    • VCPU_NUMBER: o número de vCPUs a atribuir à VM.
      • Pode atribuir entre 1 e 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a atribuir à VM.

    A VM liga-se eth0 à rede pod-network predefinida.

    O disco de arranque com o nome VM_NAME-boot-dv já tem de existir. Para mais informações, consulte o artigo Crie e faça a gestão de discos virtuais.

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

  4. Crie a VM com kubectl:

    kubectl apply -f my-custom-vm.yaml
    

Crie e use tipos de VMs

Quando ativa o tempo de execução de VMs no GDC, fica disponível uma nova definição de recurso personalizado VirtualMachineType. Esta definição é usada para especificar os recursos de CPU e memória de uma VM. Pode criar tipos de VMs para as diferentes cargas de trabalho de que precisa e aplicar um conjunto consistente de recursos de computação às VMs com base nestes tipos.

Se o tempo de execução da VM no GDC estiver ativado no Google Distributed Cloud, o comando vm-controller-manager instala um tipo de VM predefinido. A seguinte definição mostra o tipo de VM example-machinetype predefinido:

  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 pode atualizar este tipo de VM predefinido. Este tipo de VM predefinido é reinstalado se não existir no cluster sempre que o vm-controller-manager é iniciado ou reiniciado, por exemplo, se tiver eliminado o tipo de VM.

Crie um tipo de VM

Pode criar os seus próprios tipos de VMs para se adequarem às necessidades de computação das suas cargas de trabalho.

  1. Crie um manifesto VirtualMachineType, como my-vm-type.yaml, no editor da 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
    

    Neste tipo de VM, define as seguintes definições:

    • VM_NAME: o nome da sua VM. Para mais informações sobre restrições de nomes, consulte Nomes e IDs de objetos.
    • VCPU_NUMBER: o número de vCPUs a atribuir à VM.
      • Pode atribuir entre 1 e 96 vCPUs a uma VM.
    • MEMORY_SIZE: a quantidade de memória a atribuir à VM.
  3. Guarde e feche o manifesto do tipo de VM no editor.

  4. Crie o tipo de VM com kubectl:

    kubectl apply -f my-vm-type.yaml
    

Crie uma VM através de um tipo de VM

Especifique um tipo de VM no seu VirtualMachinemanifesto para aplicar definições compute predefinidas à sua VM.

  1. Crie um VirtualMachinemanifesto, como my-custom-vm.yaml, no editor à 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
    

    Neste ficheiro YAML, especifique o nome do tipo de VM personalizado que criou na secção anterior, como my-vm-type, como o valor de virtualMachineTypeName.

    A VM liga-se eth0 à rede pod-network predefinida.

    O disco de arranque com o nome VM_NAME-boot-dv já tem de existir. Para mais informações, consulte o artigo Crie e faça a gestão de discos virtuais.

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

  4. Crie a VM com kubectl:

    kubectl apply -f my-custom-vm.yaml
    

O que se segue?