Consumir reservas


Neste documento, explicamos como usar o Compute Engine para fazer o seguinte:

  • Consumir instâncias de máquina virtual (VM) reservadas.

  • Verificar o consumo das reservas.

  • Conferir os relatórios de uso da reserva.

Para mais informações sobre como consumir reservas em outros produtos do Google Cloud que usam VMs, consulte a documentação de reservas para os seguintes produtos:

Antes de começar

  • Revise os requisitos e restrições para reservas.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Funções exigidas

Para receber as permissões necessárias para o encerramento automático, solicite ao administrador o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para consumir reservas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para consumir reservas:

  • Para criar reservas: compute.reservations.create no projeto
  • Para criar VMs:
    • compute.instances.create no projeto
    • Para usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Usar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
    • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
    • Atribuir uma rede legada à VM: compute.networks.use no projeto
    • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
    • Atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto
    • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
    • Definir tags para a VM: compute.instances.setTags na VM
    • Definir rótulos para a VM: compute.instances.setLabels na VM
    • Definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
    • Criar um disco para a VM: compute.disks.create no projeto
    • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
    • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Consumir VMs reservadas

Ao criar uma instância de máquina virtual (VM), ela começa a consumir uma reserva somente se as propriedades da VM e da reserva forem correspondentes. Além disso, é preciso definir a propriedade de afinidade de reserva da VM como uma das seguintes opções:

  • Consumir qualquer reserva correspondente: a VM pode consumir automaticamente qualquer reserva com propriedades correspondentes (padrão).

    Esse modelo será útil se você criar e excluir muitas VMs e quiser usar reservas sempre que possível. Nesse cenário, uma VM pode ser criada independentemente das propriedades corresponderem a uma reserva ou não. Se elas corresponderem, a VM começará a consumir a reserva dependendo da ordem de consumo da reserva.

  • Consumir uma reserva específica: a VM pode consumir apenas uma reserva específica. A reserva não pode ser consumida automaticamente.

    Essa opção é útil quando, por exemplo, você quer manter uma certa quantidade de capacidade como backup para eventos especiais. Nesse cenário, uma VM só pode ser criada se as propriedades dela e da reserva específica forem correspondentes.

  • Não é possível consumir nenhuma reserva: a VM não pode consumir nenhuma reserva.

    Essa opção é útil quando, por exemplo, você cria uma VM temporária que você não quer que consuma recursos reservados.

Consumir VMs de qualquer reserva correspondente

Nesse modelo de consumo, as VMs atuais e novas consomem automaticamente uma reserva se as propriedades corresponderem às propriedades da VM especificadas nela.

Ao usar esse modelo de consumo, as VMs do projeto atual consomem todas as reservas de um único projeto antes de consumir qualquer reserva compartilhada. Para mais informações sobre como as reservas são consumidas automaticamente, consulte a ordem de consumo.

Ao criar uma reserva, esse é o modelo de consumo padrão, desde que não use a flag ou a opção que indica a necessidade de reservas específicas.

Console

  1. Para criar uma reserva com recursos que podem ser usados por instâncias de VM com uma propriedade de afinidade de reserva configurada para consumir qualquer reserva (padrão), siga estas etapas:

    1. Selecione o tipo de reserva que você quer criar:

      • Para criar uma reserva independente, faça o seguinte:

        1. No console do Google Cloud, acesse a página Reservas.

          Acessar "Reservas"

          A página Reservas é exibida.

        2. Clique em Criar reserva.

          A página Criar uma reserva será exibida.

      • Para criar uma reserva anexada a um compromisso, faça o seguinte:

        1. No console do Google Cloud, acesse a página Desconto por compromisso de uso.

          Acesse "Descontos por uso contínuo"

          A página Lista de compromissos é exibida.

        2. Clique em Comprar compromisso.

          A página Comprar um desconto por compromisso de uso é exibida.

        3. Especifique as propriedades do compromisso. Em seguida, na seção Reservas, clique em Adicionar um item.

          A seção Adicionar uma nova reserva vai aparecer.

          Para mais informações sobre como adquirir um compromisso com uma reserva anexada, consulte Comprar compromissos com reservas anexadas.

    2. No campo Nome, insira um nome para a reserva. Neste exemplo, digite reservation-01.

    3. Escolha a Região e a Zona em que você quer reservar recursos. Para este exemplo, selecione us-central1 como a região e us-central1-a como a zona.

    4. Escolha o Tipo de compartilhamento preferido:

      • Para criar uma reserva para um único projeto, selecione Local.
      • Para criar uma reserva compartilhada entre vários projetos, selecione Compartilhado. Para compartilhar essa reserva com outros projetos, clique em Adicionar projetos e selecione os projetos pretendidos na organização atual.
    5. Na seção Usar com instância de VM, selecione Usar reserva automaticamente, para que qualquer instância de VM correspondente possa usar essa reserva automaticamente.

    6. No campo Número de instâncias de VM, insira o número de VMs que você quer reservar. Neste exemplo, digite 2.

    7. Especifique os recursos a serem reservados para cada instância:

      • Se você quiser reservar VMs que correspondam a um modelo de instância existente, selecione Usar modelo de instância e selecione um modelo de instância na lista.
      • Caso contrário, selecione Especificar tipo de máquina e especifique o seguinte:
        1. Nos campos Família de máquinas, Série e Tipo de máquina, selecione um grupo, uma série e um tipo de máquina.
        2. Opcional: especifique uma plataforma de CPU e/ou GPUs mínimas:
          1. Para expandir a seção Plataforma de CPU e GPU, clique na seta de expansão .
          2. Opcional: para especificar uma plataforma mínima de CPU, selecione uma opção na lista Plataforma de CPU.
          3. Opcional: para adicionar GPUs, clique em Adicionar GPU. Em seguida, nos campos Tipo de GPU e Número de GPUs, selecione o tipo e o número de GPUs para cada VM.
        3. Opcional: adicione SSDs locais:
          1. No campo Número de discos, selecione o número de SSDs locais para cada VM.
          2. No campo Tipo de interface, selecione a interface dos SSDs locais.

      Neste exemplo, selecione Especificar tipo de máquina. Em seguida, selecione o tipo de máquina n2-standard-32 para a família de máquinas General-purpose e a série N2 e escolha a plataforma de CPU mínima Intel Cascade Lake.

    8. Conclua a criação da reserva:

      • Se você estiver criando uma reserva independente, clique em Criar.

      • Se você estiver criando uma reserva vinculada a um compromisso:

        1. Para concluir a especificação das propriedades desta reserva, clique em Concluído.
        2. Para concluir a criação do compromisso e das reservas anexadas, clique em Comprar.
  2. No mesmo projeto ou em um projeto com que a reserva seja compartilhada, crie uma instância de VM que vise qualquer reserva aberta.

    Verifique se as propriedades da VM correspondem às propriedades da VM no reservation-01 , incluindo a zona, o tipo de máquina (família de máquinas, vCPUs e memória), a plataforma mínima de CPU, a quantidade e o tipo de GPU e o tamanho e a interface do SSD local.

    Para mais informações sobre como criar uma VM, consulte Criar e iniciar uma VM.

    1. No console do Google Cloud, acesse a página Criar uma instância.

      Acesse "Criar uma instância"

      A página Criar uma instância é exibida.

    2. Especifique um nome para sua VM.

    3. Nas seções a seguir, selecione uma configuração que corresponda exatamente a todas as propriedades da reserva, incluindo todas as propriedades opcionais. Neste exemplo, você precisa corresponder as seguintes propriedades da instância de VM com reservation-01:

      • Região: us-central1
      • Zona: us-central1-a
      • Tipo de máquina: n2-standard-32
      • Plataforma mínima de CPU: Intel Cascade Lake
      • GPUs: nenhuma
      • SSDs locais: nenhum
    4. Expanda a seção Opções avançadas e a seção Gerenciamento. Na lista Reservas, clique em Usar automaticamente a reserva criada.

    5. Para criar a VM, clique em Criar.

gcloud

  1. Crie uma reserva aberta chamada reservation-01.

    gcloud compute reservations create reservation-01 \
        --vm-count=2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --zone=us-central1-a
    
  2. Crie uma instância de VM que vise qualquer reserva aberta e que corresponda às propriedades da instância em reservation-01, incluindo a zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e quantidade e interface de SSD local

    gcloud compute instances create instance-1 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=any
    

REST

  1. Crie uma reserva aberta chamada reservation-01.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-01",
      "specificReservation":{
        "count":"2",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake",
        }
      },
      "specificReservationRequired": false
    }
    
  2. Crie uma instância de VM que vise qualquer reserva aberta e que corresponda às propriedades da instância em reservation-01, incluindo a zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e quantidade e interface de SSD local

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-1",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "ANY_RESERVATION"
      },
      ...
    }
    

Consumir VMs de uma reserva específica

Neste modelo, apenas novas VMs que visam uma reserva específica pelo nome consomem essa reserva, e a reserva não é consumida automaticamente.

Ao criar a reserva, especifique que as VMs precisam segmentar a reserva específica usando um dos métodos a seguir:

  • No console do Google Cloud, marque a caixa de seleção Selecionar reserva específica.
  • Na CLI gcloud, inclua a sinalização --require-specific-reservation.
  • Na API Compute Engine, defina o campo specificReservationRequired como true.
  • No Terraform, defina o campo specific_reservation_required como true.

Em seguida, crie VMs que criem especificamente essa reserva. Só é possível criar uma VM que visa uma reserva específica se as propriedades da VM e da reserva forem correspondentes. Caso contrário, a criação da VM irá falhar.

Se você estiver usando um modelo de instância para criar VMs em um grupo de instâncias gerenciado e regional, crie reservas idênticas com o mesmo nome em cada zona aplicável. Em seguida, vise as reservas mencionando-as por nome no modelo de instância do grupo.

Por exemplo, crie uma reserva específica chamada reservation-02 e, em seguida, crie uma VM correspondente que vise essa reserva e que corresponda às propriedades da VM da reserva.

Dependendo do tipo de instância que você quer consumir, siga as etapas em Consumir uma reserva específica de projeto único ou Consumir uma reserva compartilhada específica.

Consumir uma reserva específica de projeto único

Para consumir uma reserva específica de um único projeto, use o console do Google Cloud, a CLI gcloud ou o REST.

Console

  1. Para criar uma reserva com recursos que só podem ser usados por instâncias de VM que visam especificamente a reserva por nome, siga estas etapas:

    1. Selecione uma das seguintes opções:

      • Para criar uma reserva independente, faça o seguinte:

        1. No console do Google Cloud, acesse a página Reservas.

          Acessar "Reservas"

          A página Reservas é exibida.

        2. Clique em Criar reserva.

          A página Criar uma reserva será exibida.

      • Para criar uma reserva anexada a um compromisso, faça o seguinte:

        1. No console do Google Cloud, acesse a página Desconto por compromisso de uso.

          Acesse "Descontos por uso contínuo"

          A página Lista de compromissos é exibida.

        2. Clique em Comprar compromisso.

          A página Comprar um desconto por compromisso de uso é exibida.

        3. Especifique as propriedades do compromisso. Em seguida, na seção Reservas, clique em Adicionar um item.

          A seção Adicionar uma nova reserva vai aparecer.

          Para mais informações sobre como adquirir um compromisso com uma reserva anexada, consulte Comprar compromissos com reservas anexadas.

    2. No campo Nome, insira um nome para a reserva. Neste exemplo, digite reservation-02.

    3. Escolha a Região e a Zona em que você quer reservar recursos. Para este exemplo, selecione us-central1 como a região e us-central1-a como a zona.

    4. Para especificar que a reserva será uma reserva de projeto único, selecione Local como o Tipo de compartilhamento.

    5. Na seção Usar com instância de VM, escolha Selecionar reserva específica para que apenas instâncias de VM correspondentes que visem especificamente essa reserva por nome possam usá-la.

    6. No campo Número de instâncias de VM, insira o número de VMs que você quer reservar. Neste exemplo, digite 10.

    7. Especifique os recursos a serem reservados para cada instância:

      • Se você quiser reservar VMs que correspondam a um modelo de instância existente, selecione Usar modelo de instância e selecione um modelo de instância na lista.
      • Caso contrário, selecione Especificar tipo de máquina e especifique o seguinte:
        1. Nos campos Família de máquinas, Série e Tipo de máquina, selecione um grupo, uma série e um tipo de máquina.
        2. Opcional: especifique uma plataforma de CPU e/ou GPUs mínimas:
          1. Para expandir a seção Plataforma de CPU e GPU, clique na seta de expansão .
          2. Opcional: para especificar uma plataforma mínima de CPU, selecione uma opção na lista Plataforma de CPU.
          3. Opcional: para adicionar GPUs, clique em Adicionar GPU. Em seguida, nos campos Tipo de GPU e Número de GPUs, selecione o tipo e o número de GPUs para cada VM.
        3. Opcional: adicione SSDs locais:
          1. No campo Número de discos, selecione o número de SSDs locais para cada VM.
          2. No campo Tipo de interface, selecione a interface dos SSDs locais.

      Neste exemplo, selecione Especificar tipo de máquina. Em seguida, selecione o tipo de máquina n2-standard-32 para a família de máquinas General-purpose e a série N2 e escolha a plataforma de CPU mínima Intel Cascade Lake.

    8. Conclua a criação da reserva:

      • Se você estiver criando uma reserva independente, clique em Criar.

      • Se você estiver criando uma reserva vinculada a um compromisso:

        1. Para concluir a especificação das propriedades desta reserva, clique em Concluído.
        2. Para concluir a criação do compromisso e das reservas anexadas, clique em Comprar.
  2. No mesmo projeto, crie uma instância de VM voltada para essa reserva específica por nome.

    Verificar se as propriedades da VM correspondem às propriedades dessa reserva específica, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e SSD local e o tamanho.

    Para mais informações sobre como criar uma VM, consulte Criar e iniciar uma VM.

    1. No console do Google Cloud, acesse a página Criar uma instância.

      Acesse "Criar uma instância"

      A página Criar uma instância é exibida.

    2. Especifique um nome para sua VM.

    3. Nas seções a seguir, selecione uma configuração que corresponda exatamente a todas as propriedades da reserva, incluindo todas as propriedades opcionais. Neste exemplo, você precisa corresponder as seguintes propriedades da instância de VM com reservation-02:

      • Região: us-central1
      • Zona: us-central1-a
      • Tipo de máquina: n2-standard-32
      • Plataforma mínima de CPU: Intel Cascade Lake
      • GPUs: nenhuma
      • SSDs locais: nenhum
    4. Expanda a seção Opções avançadas e a seção Gerenciamento. Na lista Reservas, escolha Selecionar reserva específica e, em seguida, o Nome da reserva com as propriedades correspondentes que você quer que as instâncias consumam. Neste exemplo, selecione reservation-02.

    5. Para criar a VM, clique em Criar.

gcloud

  1. Crie uma reserva com o nome reservation-02 com a sinalização --require-specific-reservation. Esses recursos reservados só podem ser usados por VMs que visem especificamente essa reserva pelo nome.

    gcloud compute reservations create reservation-02 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --require-specific-reservation
    
  2. Crie uma instância de VM que vise reservation-02 pelo nome usando as sinalizações --reservation-affinity e --reservation.

    Verifique se as propriedades da VM correspondem às propriedades de VM da reserva, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e interface do SSD local e tamanho.

    gcloud compute instances create instance-2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=reservation-02
    

REST

  1. Crie uma reserva chamada reservation-02 com o campo specificReservationRequired definido como true.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake",
        }
      },
      "specificReservationRequired": true
    }
    
  2. Crie uma instância de VM que vise reservation-02 pelo nome usando o campo reservationAffinity.

    Verifique se as propriedades da VM correspondem às propriedades de VM da reserva, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e interface do SSD local e tamanho.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values":
        [
          "reservation-02"
        ]
      },
      ...
    }
    

Consumir uma reserva compartilhada específica

Para consumir uma reserva compartilhada específica, use o console do Google Cloud, a CLI gcloud ou o REST.

Console

  1. Para criar uma reserva compartilhada com recursos que só podem ser usados por VMs que visam especificamente essa reserva por nome, siga estas etapas:

    1. Selecione uma das seguintes opções:

      • Para criar uma reserva independente, faça o seguinte:

        1. No console do Google Cloud, acesse a página Reservas.

          Acessar "Reservas"

          A página Reservas é exibida.

        2. Clique em Criar reserva.

          A página Criar uma reserva será exibida.

      • Para criar uma reserva anexada a um compromisso, faça o seguinte:

        1. No console do Google Cloud, acesse a página Desconto por compromisso de uso.

          Acesse "Descontos por uso contínuo"

          A página Lista de compromissos é exibida.

        2. Clique em Comprar compromisso.

          A página Comprar um desconto por compromisso de uso é exibida.

        3. Especifique as propriedades do compromisso. Em seguida, na seção Reservas, clique em Adicionar um item.

          A seção Adicionar uma nova reserva vai aparecer.

          Para mais informações sobre como adquirir um compromisso com uma reserva anexada, consulte Comprar compromissos com reservas anexadas.

    2. No campo Nome, insira um nome para a reserva. Neste exemplo, digite reservation-02.

    3. Escolha a Região e a Zona em que você quer reservar recursos. Para este exemplo, selecione us-central1 como a região e us-central1-a como a zona.

    4. Para especificar que sua reserva é uma reserva compartilhada, selecione Compartilhado como o Tipo de compartilhamento.

    5. Clique em Adicionar projetos e selecione os projetos da organização atual com que você quer compartilhar a reserva.

    6. Na seção Usar com instância de VM, escolha Selecionar reserva específica para que apenas instâncias de VM correspondentes que visem especificamente essa reserva por nome possam usá-la.

    7. No campo Número de instâncias de VM, insira o número de VMs que você quer reservar. Neste exemplo, digite 10.

    8. Especifique os recursos a serem reservados para cada instância:

      • Se você quiser reservar VMs que correspondam a um modelo de instância existente, selecione Usar modelo de instância e selecione um modelo de instância na lista.
      • Caso contrário, selecione Especificar tipo de máquina e especifique o seguinte:
        1. Nos campos Família de máquinas, Série e Tipo de máquina, selecione um grupo, uma série e um tipo de máquina.
        2. Opcional: especifique uma plataforma de CPU e/ou GPUs mínimas:
          1. Para expandir a seção Plataforma de CPU e GPU, clique na seta de expansão .
          2. Opcional: para especificar uma plataforma mínima de CPU, selecione uma opção na lista Plataforma de CPU.
          3. Opcional: para adicionar GPUs, clique em Adicionar GPU. Em seguida, nos campos Tipo de GPU e Número de GPUs, selecione o tipo e o número de GPUs para cada VM.
        3. Opcional: adicione SSDs locais:
          1. No campo Número de discos, selecione o número de SSDs locais para cada VM.
          2. No campo Tipo de interface, selecione a interface dos SSDs locais.

      Neste exemplo, selecione Especificar tipo de máquina. Em seguida, selecione o tipo de máquina n2-standard-32 para a família de máquinas General-purpose e a série N2 e escolha a plataforma de CPU mínima Intel Cascade Lake. 1. Conclua a criação da reserva:

      • Se você estiver criando uma reserva independente, clique em Criar.

      • Se você estiver criando uma reserva vinculada a um compromisso:

        1. Para concluir a especificação das propriedades desta reserva, clique em Concluído.
        2. Para concluir a criação do compromisso e das reservas anexadas, clique em Comprar.
  2. No mesmo projeto ou em um projeto com que a reserva seja compartilhada, crie uma VM que vise essa reserva específica pelo nome.

    Verificar se as propriedades da VM correspondem às propriedades dessa reserva específica, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e SSD local e o tamanho.

    1. No console do Google Cloud, acesse a página Criar uma instância.

      Acesse "Criar uma instância"

      A página Criar uma instância é exibida.

    2. Especifique um Nome para sua VM.

    3. Nas seções a seguir, selecione uma configuração que corresponda exatamente a todas as propriedades da reserva, incluindo todas as propriedades opcionais. Neste exemplo, você precisa corresponder as seguintes propriedades da instância de VM com reservation-02:

      • Região: us-central1
      • Zona: us-central1-a
      • Tipo de máquina: n2-standard-32
      • Plataforma mínima de CPU: Intel Cascade Lake
      • GPUs: nenhuma
      • SSDs locais: nenhum
    4. Expanda a seção Opções avançadas e a seção Gerenciamento. Na lista Reservas, escolha Selecionar reserva específica e faça o seguinte:

      1. Selecione um projeto de reserva que tenha reservas compartilhadas com seu projeto atual. Neste exemplo, selecione o projeto usado para criar reservation-02.
      2. Selecione o Nome da reserva da reserva compartilhada que você quer que a instância de VM consuma. Neste exemplo, selecione reservation-02.
    5. Para criar a VM, clique em Criar.

gcloud

  1. Crie uma reserva com o nome reservation-02 com a sinalização --require-specific-reservation. Esses recursos reservados só podem ser usados por VMs que visem especificamente essa reserva pelo nome.

    gcloud compute reservations create reservation-02 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --project=my-owner-project \
        --share-setting=projects \
        --share-with=project-1,project-2 \
        --require-specific-reservation
    
  2. Crie uma instância de VM que vise reservation-02 pelo nome usando as sinalizações --reservation-affinity e --reservation. Para consumir essa reserva de qualquer projeto de consumidor com que essa reserva seja compartilhada, você também precisa especificar o projeto que criou a reserva, my-owner-project.

    Verifique se as propriedades da VM correspondem às propriedades de VM da reserva, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e interface do SSD local e tamanho.

    gcloud compute instances create instance-2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=projects/my-owner-project/reservations/reservation-02
    

REST

  1. Crie uma reserva chamada reservation-02 com o campo specificReservationRequired definido como true.

    POST https://compute.googleapis.com/compute/v1/projects/my-owner-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake"
        }
      },
      "shareSettings": {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap": {
          "project-1": {
            "projectId": "project-1"
          },
          "project-2": {
            "projectId": "project-2"
          }
        }
      }
      "specificReservationRequired": true
    }
    
  2. Crie uma instância de VM que vise reservation-02 pelo nome usando o campo reservationAffinity. Para consumir essa reserva de qualquer projeto de consumidor com que ela é compartilhada, você também precisa especificar o projeto do proprietário da reserva, my-owner-project.

    Verifique se as propriedades da VM correspondem às propriedades de VM da reserva, incluindo zona, tipo de máquina (família de máquinas, vCPUs e memória), plataforma mínima de CPU, quantidade e tipo de GPU e interface do SSD local e tamanho.

    POST https://compute.googleapis.com/compute/v1/projects/project-2/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values":
        [
          "projects/my-owner-project/reservations/reservation-02"
        ]
      },
      ...
    }
    

Criar VMs sem consumir reservas

Para evitar explicitamente o consumo de recursos de qualquer reserva, defina a propriedade de afinidade da reserva para não usar reservas ao criar a VM. Ou, para evitar implicitamente o uso de qualquer uma das suas reservas, crie uma VM que não corresponda às propriedades de nenhuma das suas reservas.

Console

  1. Crie uma VM que não consuma explicitamente de uma reserva.

    1. No Console do Google Cloud, acesse a página Criar uma instância.

      Acesse "Criar uma instância"

    2. Crie uma VM. Para mais informações, consulte Criar e iniciar uma VM.

    3. Expanda a seção Opções avançadas e depois faça o seguinte:

      1. Expanda a seção Gerenciamento.
      2. Para garantir que essa VM não consuma de reservas atuais, na lista Reservas, selecione Não usar.
    4. Clique em Criar.

gcloud

Crie uma VM que não consuma explicitamente uma reserva.

gcloud compute instances create instance-3 --reservation-affinity=none

Ou crie uma VM que não corresponda às propriedades da VM em nenhuma de suas reservas. Para revisar suas propriedades de reserva, consulte Conferir reservas.

REST

Crie uma VM que não consuma explicitamente uma reserva.

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances

{
  "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
  "name": "instance-3",
  "reservationAffinity":
  {
    "consumeReservationType": "NO_RESERVATION"
  },
  ...
}

Ou crie uma VM que não corresponda às propriedades da VM em nenhuma de suas reservas. Para revisar suas propriedades de reserva, consulte Conferir reservas.

Testar se as propriedades da VM correspondem a uma reserva

Para testar se as VMs podem consumir automaticamente uma reserva, crie uma cópia da reserva como uma reserva específica e verifique se uma VM que você planeja criar pode consumir essa reserva. Se você conseguir criar a VM com êxito, terá verificado que ela pode consumir corretamente a reserva correspondente. Caso contrário, a criação da VM falhará porque as propriedades não correspondem ou não há recursos reservados disponíveis. Após o teste, é possível realizar uma ou mais das seguintes ações:

Verificar o consumo das reservas

Para verificar se uma VM está consumindo corretamente uma reserva, use um dos seguintes métodos:

  • Visualize os detalhes da reserva antes e depois de criar ou atualizar uma VM.

    Se o número de VMs usadas por uma reserva aumentar em um após a alteração, você provavelmente fez com que essa VM começasse a consumir a reserva. Esse é o método mais simples para verificar um consumo de reserva, mas talvez não funcione bem para verificar qual VM exata está consumindo uma reserva.

  • Crie a VM para segmentar uma reserva específica.

    Se você conseguir criar com sucesso uma VM que visa uma reserva específica, ela consumirá a reserva. Esse é o método mais confiável para verificar se uma VM específica está consumindo uma reserva e se as propriedades de VM correspondem a uma reserva.

  • Monitore o consumo das reservas:

    Ao usar o Cloud Monitoring, é possível acessar e visualizar as informações associadas ao consumo das reservas criadas no projeto atual. Se você vir uma alteração nas medidas de uma reserva, isso significa que uma VM consumiu a reserva. Esse método é útil para verificar a tendência de consumo de uma ou mais reservas, bem como receber notificações sobre reservas subutilizadas ou não utilizadas.

Se você notar que uma VM não está consumindo uma reserva depois de verificar se a afinidade de reserva da VM pode consumir essa reserva, ela não será totalmente consumida e a VM e as propriedades da reserva serão correspondentes. Consulte a documentação de solução de problemas para a Disponibilidade de recursos.

Conferir relatórios de uso da reserva

É possível exportar relatórios detalhados de uso do Compute Engine para um bucket do Cloud Storage usando o recurso de exportação de uso. Para instruções, consulte Como conferir relatórios de uso.

O relatório de uso mostra o seguinte:

  • Os recursos reservados que estão em uso. Essas entradas aparecem como recursos normais de vCPU, memória, GPU e SSD local;
  • Os recursos reservados que não estão em uso. Essas entradas têm nomes normais de SKU e URIs de recurso de reserva.
  • O total de recursos reservados. Essas entradas têm nomes de SKU de reserva e URIs de recurso de reserva. Não há custos associados a essas entradas. Use essas entradas para calcular quanto de suas reservas você está usando.
Medição Formato MeasurementId Formato Resource URI
Recursos reservados que estão em uso com.google.cloud/services/compute-engine/SKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/RESOURCE_TYPE/RESOURCE_NAME.

Por exemplo, https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance
Recursos reservados que não estão em uso com.google.cloud/services/compute-engine/SKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME.

Por exemplo, https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation
Total de recursos reservados com.google.cloud/services/compute-engine/ReservationSKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME.

Por exemplo, https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation

Por exemplo, no seguinte snippet de um relatório de uso para uma reserva chamada my-reservation:

  • A linha 1 mostra a RAM reservada atualmente em uso. O ResourceId da linha mostra que essa RAM é usada por uma VM chamada my-instance.
  • A linha 2 mostra a RAM reservada que não está em uso. O ResourceId da linha mostra que essa RAM reservada mantida por my-reservation; ela ainda não é usada por nenhuma instância.
  • A linha 3 mostra o total de RAM reservada da reserva.
Report Date,MeasurementId,Quantity,Unit,Resource URI,ResourceId,Location
2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/instances/my-instance,1775485842510981624,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/ReservationN2StandardRam,333940149714944,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
...

Resolver problemas

Saiba como resolver problemas com consumo de reserva.

A seguir