Neste documento, explicamos como criar reservas compartilhadas, que são compartilhadas em vários projetos, e gerenciar quais projetos na sua organização podem consumir as reservas compartilhadas.
Uma reserva compartilhada pode ser usada pelo projeto que hospeda a reserva (projeto proprietário) e pelos projetos com que a reserva é compartilhada (projetos consumidores). Use reservas compartilhadas se a organização tiver vários projetos que precisam de instâncias de máquina virtual (VM) com as mesmas propriedades de instância reservadas. Com as reservas compartilhadas, é possível melhorar a utilização de reservas e diminuir o número de reservas que você precisa criar e gerenciar. Para saber mais sobre reservas, consulte Reservas para recursos zonais do Compute Engine.
Para outros métodos de criação de reservas, consulte as seguintes páginas:
Se você tiver um compromisso de um ou três anos no projeto atual, seus recursos reservados receberão automaticamente todos os descontos por uso contínuo aplicáveis. Também é possível criar e anexar uma reserva a um compromisso ao comprá-lo. Para saber mais, consulte Anexar reservas a compromissos.
Para criar uma reserva que só pode ser usada por um único projeto, consulte Criar uma reserva para um único projeto.
Antes de começar
- Revise os requisitos e restrições para reservas.
- Revise os requisitos e restrições para reservas compartilhadas.
- Verifique se o projeto usado para criar reservas compartilhadas foi adicionado
à lista de permissões da restrição da política da organização Projetos de proprietário de reservas compartilhadas
(
compute.sharedReservationsOwnerProjects
) por um administrador de políticas da organização. Essa lista de permissões fica vazia por padrão. Portanto, não é possível criar reservas compartilhadas até que sua organização conceda essa permissão a um ou mais projetos. Para mais detalhes sobre como ver e editar a restrição da política da organização, consulte Como permitir e restringir projetos de criação e modificação de reservas compartilhadas neste documento. -
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Administrador do Compute (
roles/compute.admin
) no projeto -
Para visualizar e editar políticas da organização:
Administrador de políticas da organização (
roles/orgpolicy.policyAdmin
) na organização -
compute.reservations.create
no projeto -
Para visualizar as políticas da organização:
orgpolicy.policy.get
na organização -
Para editar políticas da organização:
orgpolicy.policy.set
na organização -
Para especificar um modelo de instância:
compute.instanceTemplates.useReadOnly
no modelo de instância -
Fazer com que o projeto proprietário crie a reserva compartilhada, mas não a consuma
- Para distribuir os gastos entre os projetos, é recomendável que uma reserva compartilhada seja consumida apenas pelos projetos consumidores. O projeto proprietário só deve ser usado para criar a reserva compartilhada.
- O projeto proprietário precisa ter cota suficiente para o dobro de recursos a serem reservados. Para mais informações, consulte Requisitos adicionais para reservas compartilhadas.
-
Minimize o número de projetos na organização que têm permissão para
criar reservas compartilhadas. Você pode controlar isso por meio da restrição da
política da organização de Projetos de proprietário de reservas compartilhadas (
compute.sharedReservationsOwnerProjects
).- Só é possível listar as reservas criadas por cada projeto. Isso significa que as reservas compartilhadas são listadas apenas no projeto de proprietário. Não é possível listar as reservas compartilhadas com cada projeto ou todas as reservas compartilhadas em cada organização. Portanto, ter apenas alguns projetos de proprietário facilita o monitoramento e o gerenciamento das reservas compartilhadas.
- Limite o compartilhamento de uma reserva compartilhada a poucos projetos, apenas para gerenciar a cota dos seus recursos reservados com mais facilidade.
- Para mais informações, consulte Permitir e restringir projetos para criar e modificar reservas compartilhadas.
-
Minimize o número de reservas compartilhadas separadas com propriedades de VM idênticas.
- Uma organização pode ter até 100 reservas compartilhadas para cada combinação exclusiva de propriedades de VM. Como resultado, minimizar o número de reservas compartilhadas com propriedades de VM idênticas criadas ajuda a atenuar esse limite.
- Ter menos reservas compartilhadas melhora o gerenciamento.
-
Compartilhe reservas apenas entre projetos com a mesma conta do Cloud Billing.
- Limite cada reserva compartilhada para ser compartilhada apenas com projetos de consumidor que tenham a mesma conta do Cloud Billing que o projeto do proprietário. Isso facilita ao verificar se a reserva foi consumida e como foi faturada.
- Se você ativou o compartilhamento de CUD e se qualifica para receber CUDs no nível da conta do Cloud Billing, maximize os CUDs recebidos para suas reservas consumidas ao limitar suas reservas compartilhadas na conta do Cloud Billing desse compromisso. Isso permite manter um faturamento consistente nos projetos que criam e consomem reservas compartilhadas.
-
Para solicitações de reserva adiantada, analise cuidadosamente a contagem total de VMs solicitadas.
- Se você estiver criando uma solicitação de reserva adiantada, solicite uma contagem total de VMs que considere todos os itens a seguir:
- Todas as VMs reservadas correspondentes que já existirão na data futura
- Todas as VMs não reservadas correspondentes que já existirão na data futura
- Todas as reservas imediatas não utilizadas correspondentes que já existirão na data futura
- O aumento no uso que você quer reservar na data futura.
Por exemplo, suponha que você precise de 10 VMs extras na data futura e já tenha os seguintes recursos na data futura:
- 40 VMs reservadas correspondentes
- 50 VMs não reservadas correspondentes
ou
- 40 VMs reservadas correspondentes
- 50 reservas imediatas não utilizadas correspondentes
Como seu uso na data futura já adicionará até 90 VMs e reservas correspondentes e você precisará de mais 10 VMs, será preciso especificar uma contagem total de
100
na sua solicitação de reserva adiantada.Para mais informações, consulte Contar e provisionar recursos reservados.
- Se você estiver criando uma solicitação de reserva adiantada, solicite uma contagem total de VMs que considere todos os itens a seguir:
Faça o download da política da sua organização como um arquivo chamado
policy.yaml
, usando o comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Substitua ORGANIZATION_ID pelo ID da organização.
Use um editor de texto para abrir o arquivo
policy.yaml
e ver a restriçãocompute.sharedReservationsOwnerProjects
. Os projetos que têm permissão para criar e modificar reservas compartilhadas estão listados emallowedValues
:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
em que PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 são os números de projeto dos únicos projetos da organização que têm permissão para criar reservas compartilhadas.
Opcional: exclua o arquivo
policy.yaml
.Se você estiver usando um terminal Linux ou macOS, use o seguinte comando:
rm policy.yaml
Se você estiver usando um terminal do Windows, use o seguinte comando:
del policy.yaml
Para conceder permissão a um único projeto para criar e modificar reservas compartilhadas, use o comando
gcloud resource-manager org-policies allow
. Repita esse comando para cada projeto ao qual quer conceder essa permissão.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Substitua:
- PROJECT_NUMBER: o número do projeto (não o ID) de um projeto na organização que você quer permitir para criar e modificar reservas compartilhadas.
- ORGANIZATION_ID: o ID da organização.
Para conceder ou revogar as permissões de vários projetos para criar e modificar reservas compartilhadas, substitua a restrição da política da organização:
Para fazer o download da política da sua organização como um arquivo chamado
policy.yaml
, use o comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Substitua ORGANIZATION_ID pelo ID da organização.
Use um editor de texto para modificar o arquivo
policy.yaml
para que a restriçãocompute.sharedReservationsOwnerProjects
liste todos os projetos que podem ter permissão para criar e modificar reservas compartilhadas emallowedValues
.- Para cada projeto que receber permissão para criar
e modificar reservas compartilhadas, adicione o projeto a uma nova linha em
allowedValues
. - Para cada projeto que tiver permissão revogada para criar e modificar reservas compartilhadas, exclua a linha desse projeto.
Ao terminar, verifique se o arquivo
policy.yaml
fica parecido com o seguinte:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
em que PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 são os números (não os IDs) de todos os projetos em sua organização que você quer que crie e modifique reservas compartilhadas.
- Para cada projeto que receber permissão para criar
e modificar reservas compartilhadas, adicione o projeto a uma nova linha em
Salve o arquivo
policy.yaml
e feche o editor.Para atualizar a política da organização com as alterações, use o comando
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
Substitua ORGANIZATION_ID pelo ID da organização.
Opcional: exclua o arquivo
policy.yaml
.Se você estiver usando um terminal Linux ou macOS, use o seguinte comando:
rm policy.yaml
Se você estiver usando um terminal do Windows, use o seguinte comando:
del policy.yaml
Recomendado: Especificar um modelo de instância
Nesta seção, explicamos como usar um modelo de instância para definir as propriedades de uma reserva compartilhada. Ao usar um modelo de instância, é possível definir as propriedades de uma reserva e as VMs que podem consumir a reserva no mesmo lugar. No entanto, como os modelos são específicos do projeto, não é possível usar o mesmo modelo para criar VMs que possam consumir a reserva fora do projeto que a criou. Para os projetos com que a reserva é compartilhada, crie modelos semelhantes nesses projetos ou crie VMs especificando propriedades diretamente.
Especificar propriedades diretamente
Nesta seção, explicamos como definir diretamente as propriedades de uma reserva compartilhada. Esse método exige que você garanta manualmente que as propriedades das VMs e reservas sejam exatamente correspondentes entre si, ou seja, propriedades incompatíveis impedem o consumo.
Crie uma reserva que só possa ser consumida por VMs especificamente direcionadas a ela, conforme explicado nas seções a seguir. Em seguida, configure VMs para consumir essa reserva específica.
Configure VMs que não podem consumir reservas.
No console do Google Cloud, acesse a página Reservas.
A página Reservas é exibida.
Clique em
Criar reserva.A página Criar uma reserva será exibida.
No campo Nome, insira um nome para a reserva.
Escolha a Região e a Zona em que você quer reservar recursos.
Na seção Tipo de compartilhamento, faça o seguinte:
Para especificar uma reserva compartilhada, clique em Compartilhada.
Clique em
Adicionar projetos e selecione os projetos da organização com que você quer compartilhar a reserva.
Na seção Usar com instância de VM, selecione uma das seguintes opções:
Para permitir que instâncias de VM correspondentes usem essa reserva automaticamente, clique em Usar reserva automaticamente (padrão).
Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visam especificamente essa reserva por nome, selecione Selecionar reserva específica.
No campo Número de instâncias de VM, insira o número de VMs que você quer reservar.
Na seção Configuração da máquina, faça o seguinte:
Para especificar as propriedades das VMs com base em um modelo de instância, selecione Usar modelo de instância.
No campo Modelo de instância, selecione o modelo de instância de sua escolha. Se você selecionar um modelo de instância regional, só poderá reservar recursos dentro da região do modelo de instância.
Na seção Exclusão automática, é possível ativar a opção para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. A exclusão automática de reservas pode ser útil para evitar cobranças desnecessárias quando você para de consumir a reserva.
Para criar a reserva, clique em Criar.
A criação da reserva compartilhada pode levar algum tempo. Essa ação redireciona você para a página Reservas.
RESERVATION_NAME
: o nome da reserva a ser criada.PROJECT_ID
: o ID do projeto em que você quer reservar recursos e onde o modelo de instância existe.CONSUMER_PROJECT_IDS
: uma lista separada por vírgulas de IDs de projetos que podem consumir essa reserva, por exemplo,project-1,project-2
. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o projeto proprietário. Por padrão, ele já é permitido para consumir a reserva.LOCATION
: o local do modelo de instância. Especifique um dos seguintes valores:Para um modelo de instância global:
global
Para um modelo de instância regional:
regions/REGION
. SubstituaREGION
pela região em que o modelo de instância está. Se você especificar um modelo de instância regional, só será possível reservar VMs dentro da região do modelo de instância.
INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância. Se você especificar um modelo de instância, não será possível modificar nenhuma das propriedades ao criar a reserva. Caso contrário, você vai encontrar erros.NUMBER_OF_VMS
: o número de VMs a serem reservadas.ZONE
: a zona em que os recursos serão reservados.Para especificar que apenas VMs que segmentam especificamente esta reserva podem consumi-la, inclua a flag
--require-specific-reservation
.gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:
Para excluir a reserva em uma data e hora específicas, use o comando
gcloud beta compute reservations create
e inclua a flag--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Substitua
DELETE_AT_TIME
por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-
).HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique-08:00
. Outra possibilidade é não usar ajuste: especifiqueZ
.
Para excluir a reserva após uma duração específica, use o comando
gcloud beta compute reservations create
e inclua a flag--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Substitua
DELETE_AFTER_DURATION
por uma duração em dias, horas, minutos ou segundos. Por exemplo, especifique30m
para 30 minutos ou1d2h3m4s
para 1 dia, 2 horas, 3 minutos e 4 segundos.
PROJECT_ID
: o ID do projeto em que você quer reservar recursos e onde o modelo de instância existe.ZONE
: a zona em que os recursos serão reservados.RESERVATION_NAME
: o nome da reserva a ser criada.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: os IDs do projeto que podem consumir essa reserva. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o projeto proprietário. Por padrão, ele já pode consumir a reserva.NUMBER_OF_VMS
: o número de VMs a serem reservadas.LOCATION
: o local do modelo de instância. Especifique um dos seguintes valores:Para um modelo de instância global:
global
Para um modelo de instância regional:
regions/REGION
. SubstituaREGION
pela região em que o modelo de instância está. Se você especificar um modelo de instância regional, só será possível reservar VMs dentro da região do modelo de instância.
INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância. Se você especificar um modelo de instância, não será possível modificar nenhuma das propriedades ao criar a reserva. Caso contrário, você vai encontrar erros.Para especificar que apenas VMs que segmentam especificamente esta reserva possam consumi-la, inclua o campo
specificReservationRequired
no corpo da solicitação e defina-o comotrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:
Para excluir a reserva em uma data e hora específicas, faça uma solicitação
POST
para o métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Substitua
DELETE_AT_TIME
por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-
).HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique-08:00
. Outra possibilidade é não usar ajuste: especifiqueZ
.
Para excluir a reserva após uma duração específica, faça uma solicitação
POST
para o métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Substitua
DELETE_AFTER_DURATION
por uma duração em segundos. Por exemplo, especifique86400
para 86.400 segundos (1 dia).
No console do Google Cloud, acesse a página Reservas.
A página Reservas é exibida.
Clique em
Criar reserva.A página Criar uma reserva será exibida.
No campo Nome, insira um nome para a reserva.
Escolha a Região e a Zona em que você quer reservar recursos.
Na seção Tipo de compartilhamento, faça o seguinte:
Para especificar uma reserva compartilhada, clique em Compartilhada.
Clique em
Adicionar projetos e selecione os projetos da organização com que você quer compartilhar a reserva.
Na seção Usar com instância de VM, selecione uma das seguintes opções:
Permitir que VMs correspondentes consumam essa reserva automaticamente. Clique em Usar reserva automaticamente (padrão).
Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visam especificamente essa reserva por nome, selecione Selecionar reserva específica.
No campo Número de instâncias de VM, insira o número de VMs que você quer reservar.
Na seção Configuração da máquina, selecione Especificar tipo de máquina e especifique o seguinte:
Nos campos Família de máquinas, Série e Tipo de máquina, selecione uma família, uma série e um tipo de máquina.
Opcional: para especificar uma plataforma de CPU mínima e/ou GPUs, faça o seguinte:
Para expandir a seção Plataforma de CPU e GPU, clique na seta de expansão
.Opcional: para especificar uma plataforma mínima de CPU, selecione uma opção na lista Plataforma de CPU.
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.
Opcional: para adicionar SSDs locais, faça o seguinte:
No campo Número de discos, selecione o número de SSDs locais para cada VM.
No campo Tipo de interface, selecione a interface dos SSDs locais.
Na seção Exclusão automática, é possível ativar a opção para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. A exclusão automática de reservas pode ser útil para evitar cobranças desnecessárias quando você para de consumir a reserva.
Para criar a reserva, clique em Criar.
A criação da reserva compartilhada pode levar algum tempo. Essa ação redireciona você para a página Reservas.
RESERVATION_NAME
: o nome da reserva a ser criada.MACHINE_TYPE
: um tipo de máquina a ser usado em cada VM. Especifique um dos seguintes valores:Para um tipo de máquina predefinido:
MACHINE_FAMILY-standard-CPUS
.Para um tipo de máquina personalizado:
MACHINE_FAMILY-custom-CPUS-MEMORY
. Antes de especificar um tipo de máquina personalizado, analise as limitações para VMs com tipos de máquina personalizados.
Substitua:
MACHINE_FAMILY
: a família de máquinas.CPUS
: o número de vCPUs.MEMORY
: a memória total para uma instância reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB.
Por exemplo, para especificar um tipo de máquina personalizado N2 com 4 vCPUs e 5 GB de memória, que é de 5.120 MB, especifique
n2-custom-4-5120
.PROJECT_ID
: o ID do projeto em que você quer reservar recursos.CONSUMER_PROJECT_IDS
: uma lista separada por vírgulas de IDs de projetos que podem consumir essa reserva, por exemplo,project-1,project-2
. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o projeto proprietário. Por padrão, ele já é permitido para consumir a reserva.NUMBER_OF_VMS
: o número de VMs a serem reservadas.ZONE
: a zona em que os recursos serão reservados.Para adicionar unidades de processamento gráfico (GPUs) a cada VM reservada, inclua a flag
--accelerator
.gcloud compute reservations create my-reservation \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE ...
Substitua:
NUMBER_OF_ACCELERATORS
: o número de GPUs a serem adicionadas por VM reservada.ACCELERATOR_TYPE
: o tipo de GPU a ser adicionada às VMs reservadas.
Verifique se o tipo de máquina especificado na reserva é compatível com os tipos de GPUs especificados e se a GPU está disponível na zona em que você quer reservar recursos. Caso contrário, a criação da reserva falhará.
Para adicionar um ou mais SSDs locais a cada VM reservada, inclua uma ou mais flags
--local-ssd
. É possível especificar até 24 SSDs locais. Cada SSD local tem 375 GB.Por exemplo, para especificar dois SSDs locais ao criar uma reserva, inclua duas flags
--local-ssd
.gcloud compute reservations create my-reservation \ --local-ssd=size=375,interface=INTERFACE_1 \ --local-ssd=size=375,interface=INTERFACE_2 \ ...
Substitua
INTERFACE_1
eINTERFACE_2
pelo tipo de interface que você quer que cada SSD local use. Especifique um dos seguintes valores:Para interfaces de disco NVME:
nvme
Para interfaces de disco SCSI:
scsi
.
Verifique se o tipo de máquina especificado para as VMs reservadas é compatível com as interfaces de disco escolhidas. Caso contrário, a criação da reserva falhará. Para mais informações, veja como escolher uma interface de disco.
Para que as VMs reservadas usem uma plataforma mínima de CPU específica, em vez da plataforma de CPU padrão da zona, inclua a flag
--min-cpu-platform
.gcloud compute reservations create my-reservation \ --min-cpu-platform="MIN_CPU_PLATFORM" \ ...
Substitua
MIN_CPU_PLATFORM
por uma plataforma de CPU mínima. Para garantir que uma plataforma de CPU esteja disponível na zona em que você está reservando recursos, confira as plataformas de CPU disponíveis por zona.Para especificar que apenas VMs que segmentam especificamente esta reserva podem consumi-la, inclua a flag
--require-specific-reservation
.gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:
Para excluir a reserva em uma data e hora específicas, use o comando
gcloud beta compute reservations create
e inclua a flag--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Substitua
DELETE_AT_TIME
por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-
).HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique-08:00
. Outra possibilidade é não usar ajuste: especifiqueZ
.
Para excluir a reserva após uma duração específica, use o comando
gcloud beta compute reservations create
e inclua a flag--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Substitua
DELETE_AFTER_DURATION
por uma duração em dias, horas, minutos ou segundos. Por exemplo, especifique30m
para 30 minutos ou1d2h3m4s
para 1 dia, 2 horas, 3 minutos e 4 segundos.
- Defina o campo
share_type
comoSPECIFIC_PROJECTS
- No bloco
project_map
, especifique os IDs dos projetos com que você quer compartilhar essa reserva. PROJECT_ID
: o ID do projeto em que você quer reservar recursos.ZONE
: a zona em que os recursos serão reservados.RESERVATION_NAME
: o nome da reserva a ser criada.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: os IDs do projeto que podem consumir essa reserva. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o projeto proprietário. Por padrão, ele já pode consumir a reserva.NUMBER_OF_VMS
: o número de VMs a serem reservadas.MACHINE_TYPE
: um tipo de máquina a ser usado em cada VM. Especifique um dos seguintes valores:Para um tipo de máquina predefinido:
MACHINE_FAMILY-standard-CPUS
.Para um tipo de máquina personalizado:
MACHINE_FAMILY-custom-CPUS-MEMORY
. Antes de especificar um tipo de máquina personalizado, analise as limitações para VMs com tipos de máquina personalizados.
Substitua:
MACHINE_FAMILY
: a família de máquinas.CPUS
: o número de vCPUs.MEMORY
: a memória total para uma instância reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB.
Por exemplo, para especificar um tipo de máquina personalizado N2 com 4 vCPUs e 5 GB de memória, que é de 5.120 MB, especifique
n2-custom-4-5120
.Para adicionar unidades de processamento gráfico (GPUs) a cada VM reservada, inclua o campo
guestAccelerators
no corpo da solicitação.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], ... }, ... } }
Substitua:
NUMBER_OF_ACCELERATORS
: o número de GPUs a serem adicionadas por VM reservada.ACCELERATOR_TYPE
: o tipo de GPU a ser adicionada às VMs reservadas.
Verifique se o tipo de máquina especificado na reserva é compatível com os tipos de GPUs especificados e se a GPU está disponível na zona em que você quer reservar recursos. Caso contrário, a criação da reserva falhará.
Para adicionar um ou mais SSDs locais a cada VM reservada, inclua o campo
localSsds
no corpo da solicitação. É possível especificar até 24 SSDs locais. Cada SSD local tem 375 GB.Por exemplo, para especificar dois SSDs locais ao criar uma reserva, especifique o seguinte:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_1" }, { "diskSizeGb": "375", "interface": "INTERFACE_2" } ], ... }, ... } }
Substitua
INTERFACE_1
eINTERFACE_2
pelo tipo de interface que você quer que cada SSD local use. Especifique um dos seguintes valores:Para interfaces de disco NVME:
NVME
Para interfaces de disco SCSI:
SCSI
.
Verifique se o tipo de máquina especificado para as VMs reservadas é compatível com as interfaces de disco escolhidas. Caso contrário, a criação da reserva falhará. Para mais informações, veja como escolher uma interface de disco.
Para que as VMs reservadas usem uma plataforma mínima de CPU específica, em vez da plataforma de CPU padrão da zona, inclua o campo
minCpuPlatform
no corpo da solicitação.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "minCpuPlatform": "MIN_CPU_PLATFORM", ... }, ... } }
Substitua
MIN_CPU_PLATFORM
por uma plataforma de CPU mínima. Para garantir que uma plataforma de CPU esteja disponível na zona em que você está reservando recursos, confira as plataformas de CPU disponíveis por zona.Para especificar que apenas VMs que segmentam especificamente esta reserva possam consumi-la, inclua o campo
specificReservationRequired
no corpo da solicitação e defina-o comotrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:
Para excluir a reserva em uma data e hora específicas, faça uma solicitação
POST
para o métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Substitua
DELETE_AT_TIME
por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-
).HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique-08:00
. Outra possibilidade é não usar ajuste: especifiqueZ
.
Para excluir a reserva após uma duração específica, faça uma solicitação
POST
para o métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Substitua
DELETE_AFTER_DURATION
por uma duração em segundos. Por exemplo, especifique86400
para 86.400 segundos (1 dia).
Saiba como conferir suas reservas.
Saiba como anexar reservas a compromissos.
Saiba como consumir reservas.
Saiba como monitorar o consumo das reservas.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
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 ter as permissões necessárias para criar reservas compartilhadas, peça ao administrador para conceder a você os seguintes papéis do IAM:
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esses papéis predefinidos contêm as permissões necessárias para criar reservas compartilhadas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar reservas compartilhadas:
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Práticas recomendadas
Ao criar reservas compartilhadas, recomendamos as práticas a seguir. Ao adotá-las, é possível otimizar a capacidade de gerenciamento e a utilização de reservas compartilhadas na sua organização.
Permitir e impedir que projetos criem e modifiquem reservas compartilhadas
Por padrão, nenhum projeto tem permissão para criar ou modificar reservas compartilhadas em uma organização. Adicione projetos à restrição da política da organização Projetos de proprietário de reservas compartilhadas (
compute.sharedReservationsOwnerProjects
) para permitir que criem e modifiquem reservas compartilhadas. Saiba mais sobre restrições de políticas da organização em Introdução ao serviço de políticas da organização.Siga as etapas a seguir para visualizar e editar a restrição da política da organização Projetos de proprietário de reservas compartilhadas (
compute.sharedReservationsOwnerProjects
).Ver a restrição da política da organização de reservas compartilhadas
Veja quais projetos têm permissão para criar e modificar reservas compartilhadas usando o console do Google Cloud ou a CLI gcloud.
Console
Siga as etapas em Como visualizar políticas da organização usando a restrição Projetos de proprietário de reservas compartilhadas.
gcloud
Para ver quais projetos a restrição
compute.sharedReservationsOwnerProjects
permite criar e modificar reservas compartilhadas:Editar a restrição da política da organização de reservas compartilhadas
Para editar quais projetos têm permissão para criar e modificar reservas compartilhadas use o console do Google Cloud ou a CLI gcloud.
Console
Siga as etapas em Como personalizar políticas para restrições de lista usando a restrição Projetos de proprietário de reservas compartilhadas.
gcloud
Para editar quais projetos a restrição
compute.sharedReservationsOwnerProjects
permite criar e modificar reservas compartilhadas, use um dos seguintes métodos:Talvez seja necessário aguardar alguns minutos para que a edição entre em vigor.
Criar uma reserva compartilhada
Nesta seção, explicamos como criar reservas compartilhadas. Depois de criar uma reserva compartilhada, ela pode ser modificada apenas pelo projeto proprietário, mas os recursos de uma reserva compartilhada podem ser consumidos pelo projeto proprietário ou por qualquer projeto do consumidor.
Para consumir uma reserva, uma VM precisa ter propriedades que correspondam exatamente a essa reserva. Para especificar as propriedades das VMs que você quer reservar, selecione uma das seguintes seções neste documento:
Por padrão, uma reserva pode ser consumida automaticamente por qualquer VM com propriedades correspondentes. Se você quiser controlar o consumo de reservas, siga um ou mais de um destes procedimentos:
Especificar um modelo de instância
Para criar uma reserva compartilhada especificando um modelo de instância, use o console do Google Cloud, a CLI gcloud ou o REST.
Console
Para criar uma reserva compartilhada especificando um modelo de instância, faça o seguinte:
gcloud
Para criar uma reserva compartilhada especificando um modelo de instância, use o comando
gcloud compute reservations create
.Para criar uma reserva compartilhada especificando um modelo de instância sem flags opcionais, execute o seguinte comando:
gcloud compute reservations create RESERVATION_NAME \ --project=PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua:
Por exemplo, para criar uma reserva especificando um modelo de instância global na zona
us-central1-a
, compartilhe a reserva com os projetosproject-1
eproject-2
e reserve dez VMs que usam um tipo de máquina predefinido N2 com quatro vCPUs, execute o seguinte comando:gcloud compute reservations create my-reservation \ --project=example-project \ --share-setting=projects \ --share-with=project-1,project-2 \ --source-instance-template=projects/example-project/global/example-instance-template \ --vm-count=10 \ --zone=us-central1-a
Também é possível realizar uma ou mais das seguintes ações:
REST
Para criar uma reserva compartilhada especificando um modelo de instância, faça uma solicitação
POST
para o métodoreservations.insert
.Por exemplo, para criar uma reserva compartilhada especificando um modelo de instância sem campos opcionais e compartilhar a reserva com dois projetos de consumidor, faça a seguinte solicitação
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Substitua:
Por exemplo, para criar uma reserva para dez VMs na zona
us-central1-a
especificando um modelo de instância global e compartilhar a reserva com os projetosproject-1
eproject-2
, faça a solicitaçãoPOST
a seguir:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
Também é possível realizar uma ou mais das seguintes ações:
Especificar propriedades da VM diretamente
Para criar uma reserva compartilhada especificando as propriedades diretamente, use o console do Google Cloud, a CLI gcloud, o Terraform ou o REST.
Console
Para criar uma reserva compartilhada, faça o seguinte:
gcloud
Para criar uma reserva compartilhada, use o comando
gcloud compute reservations create
.Para criar uma reserva compartilhada sem flags opcionais, execute o seguinte comando:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --project=PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua:
Por exemplo, para criar uma reserva para dez VMs na zona
us-central1-a
especificando um modelo de instância global e compartilhar a reserva com os projetosproject-1
eproject-2
, execute o seguinte comando:gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --project=example-project \ --share-setting=projects \ --share-with=project-1,project-2 \ --vm-count=10 \ --zone=us-central1-a
Também é possível realizar uma ou mais das seguintes ações:
Terraform
Para criar uma reserva, use o recurso
google_compute_reservation
do Terraform. Para especificar uma reserva compartilhada, defina o blocoshare_settings
:Para mais informações sobre como usar o Terraform, consulte Como usar o Terraform com o Google Cloud.
REST
Para criar uma reserva compartilhada, faça uma solicitação
POST
para o métodoreservations.insert
.Por exemplo, para criar uma reserva compartilhada sem campos opcionais e compartilhar a reserva com dois projetos de consumidor, faça a seguinte solicitação
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", } } }
Substitua:
Por exemplo, para criar uma reserva especificando um modelo de instância global na zona
us-central1-a
, compartilhe a reserva com os projetosproject-1
eproject-2
e reserve dez VMs que usam um tipo de máquina predefinido N2 com quatro vCPUs, faça a seguinte solicitaçãoPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "instanceProperties": { "machineType": "n2-standard-4", } } }
Também é possível realizar uma ou mais das seguintes ações:
Solução de problemas
Saiba como resolver problemas de criação de reserva.
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-09-24 UTC.
-