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.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Funções exigidas

Para receber as permissões necessárias para consumir reservas, peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

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
  • Para criar modelos de instância: compute.instanceTemplates.create no projeto

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"

        2. Na guia Reserva sob demanda (padrão), clique em Criar reserva.

          A página Criar uma reserva é aberta.

      • 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 é aberta.

        2. Clique em Comprar compromisso.

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

        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 será aberta.

    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",
        }
      }
    }
    
  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",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12"
          }
        }
      ],
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "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 projeto único, selecione uma das seguintes opções:

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"

        2. Na guia Reservas sob demanda (padrão), clique em Criar reserva.

          A página Criar uma reserva é aberta.

      • 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"

        2. Clique em Comprar compromisso.

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

        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"

    2. No campo Nome, insira um nome para a 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 faça isto:

      1. Expanda a seção Gerenciamento.

      2. Na seção Reservas, na lista Política do aplicativo, selecione Selecionar reserva específica.

      3. Selecione a reserva com as propriedades de VM correspondentes que você quer que a 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 \
        --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",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-clouid/global/images/family/debian-12"
          }
        }
      ],
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "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, selecione uma das seguintes opções:

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"

        2. Na guia Reservas sob demanda (padrão), clique em Criar reserva.

          A página Criar uma reserva é aberta.

      • 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"

        2. Clique em Comprar compromisso.

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

        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 será aberta.

    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",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/debian-clouid/global/images/family/debian-12"
          }
        }
      ],
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "reservationAffinity": {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values": [
          "projects/my-owner-project/reservations/reservation-02"
        ]
      }
    }
    

Criar VMs sem consumir reservas

Se você criar uma reserva consumida automaticamente, qualquer VM em execução com propriedades correspondentes no projeto poderá consumir a reserva. Para impedir que uma ou mais VMs consumam a reserva, faça o seguinte:

  • Defina a propriedade de afinidade de reserva das VMs para não consumir explicitamente nenhuma reserva, conforme descrito nesta seção.

  • Verifique se as VMs não correspondem às propriedades da VM da reserva.

Para criar VMs que não consomem reservas explicitamente, selecione um dos seguintes métodos:

Criar uma VM para não consumir reservas

Para criar uma VM que não consuma reservas explicitamente, selecione uma das seguintes opções:

Console

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

    Acesse "Criar uma instância"

  2. No campo Nome, insira um nome para a VM.

  3. Nas listas Região e Zona, selecione a região e a zona em que a VM será criada.

  4. Na seção Configuração da máquina, especifique o tipo de máquina a ser usado na VM.

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

    1. Expanda a seção Gerenciamento.

    2. Na seção Reservas, na lista Política do aplicativo, selecione Não usar.

  6. Clique em Criar.

gcloud

Para criar uma VM que não consuma reservas explicitamente, use o comando gcloud compute instances create com a flag --reservation-affinity=none.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --reservation-affinity=none \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM.

  • ZONE: a zona em que a instância de VM será criada.

REST

Para criar uma VM que não consuma reservas explicitamente, faça uma solicitação POST para o método instances.insert. No corpo da solicitação, inclua o campo consumeReservationType definido como NO_RESERVATION.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "reservationAffinity": {
    "consumeReservationType": "NO_RESERVATION"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM será criada.

  • ZONE: a zona em que a instância de VM será criada.

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem do SO, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO. Por exemplo: debian-12-bookworm-v20240617

    • Uma família de imagens, que precisa ser formatada como family/IMAGE_FAMILY. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Para mais informações sobre como criar uma VM, consulte Criar e iniciar uma instância do Compute Engine.

Criar um modelo de instância para não consumir reservas

Para criar um modelo de instância que crie VMs que não consomem reservas explicitamente, selecione uma das seguintes opções:

Console

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

    Acessar "Criar um modelo de instância"

  2. No campo Nome, insira um nome para o modelo de instância.

  3. Na seção Local, especifique se você quer criar um modelo de instância regional (padrão) ou global.

  4. Na seção Configuração da máquina, especifique o tipo de máquina a ser usado para as VMs criadas com o modelo.

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

    1. Expanda a seção Gerenciamento.

    2. Na seção Reservas, na lista Política do aplicativo, selecione Não usar.

  6. Clique em Criar.

gcloud

Para criar um modelo de instância que crie VMs que não consomem reservas explicitamente, use o comando gcloud compute instances-templates create com a flag --reservation-affinity=none.

Por exemplo, para criar um modelo de instância global que crie VMs que não consomem reservas explicitamente, execute o seguinte comando:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --reservation-affinity=none

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • MACHINE_TYPE: o tipo de máquina a ser usado para as VMs criadas usando o modelo de instância.

REST

Para criar um modelo de instância que crie VMs que não consomem reservas explicitamente, faça uma solicitação POST para um dos seguintes métodos:

No corpo da solicitação, inclua o campo consumeReservationType e defina-o como NO_RESERVATION.

Por exemplo, para criar um modelo de instância global que crie VMs que não consumam reservas explicitamente, faça uma solicitação da seguinte maneira:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/InstanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o modelo de instância será criado.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • MACHINE_TYPE: o tipo de máquina a ser usado para as VMs criadas usando o modelo de instância.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem do SO, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO. Por exemplo: debian-12-bookworm-v20240617

    • Uma família de imagens, que precisa ser formatada como family/IMAGE_FAMILY. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Para mais informações sobre como criar modelos de instância, consulte Como criar modelos de instância.

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