Este documento explica como criar reservas compartilhadas, que são reservas compartilhadas entre 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 os quais a reserva é compartilhada (projetos consumidores). Utilize reservas partilhadas se a sua organização tiver vários projetos que necessitam de instâncias de máquina virtual (VM) com as mesmas propriedades reservadas. Ao utilizar reservas partilhadas, pode melhorar a utilização das suas reservas e reduzir o número de reservas que precisa de criar e gerir. Para saber mais sobre reservas, consulte Reservas de recursos zonais do Compute Engine .
Para outros métodos de criação de reservas, consulte as seguintes páginas:
Para criar uma reserva que só pode ser usada por um único projeto, consulte Criar uma reserva para um único projeto .
Para criar uma reserva ao adquirir um compromisso baseado em recursos, consulte Comprar compromissos com reservas anexadas . Os compromissos fornecem descontos, conhecidos como descontos por uso contínuo (CUDs), nos custos de recursos sob demanda em troca da compra de um nível mínimo de recursos ou do gasto de um valor mínimo.
Antes de começar
- Revise os requisitos e restrições para reservas.
- Revise os requisitos e restrições de cota para reservas compartilhadas.
- Certifique-se de que o projeto que você usa para criar reservas compartilhadas foi adicionado à lista de permissões para a restrição de política da organização Projetos de Proprietários de Reservas Compartilhadas (
compute.sharedReservationsOwnerProjects
) por um administrador de política da organização. Esta lista de permissões está vazia por padrão, portanto você não poderá criar reservas compartilhadas até que sua organização conceda essa permissão a um ou mais projetos. Para obter mais detalhes sobre como visualizar e editar a restrição de política da organização, consulte Permitir e restringir a criação e modificação de reservas compartilhadas por projetos neste documento. - Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Compute Admin (
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 - Faça com que o projeto proprietário crie a reserva compartilhada, mas não a consuma.
- Para distribuir os gastos entre projetos, é recomendado que apenas os projetos de consumo consumam uma reserva partilhada. O projeto proprietário só deve ser usado para criar a reserva compartilhada.
- Ao criar uma reserva compartilhada, o projeto proprietário deve ter cota suficiente para o total de recursos a serem reservados. Então, após a criação da reserva, o projeto proprietário deverá ter cota para quaisquer recursos reservados que deseja consumir. Para obter mais informações, consulte Requisitos adicionais de cota para reservas compartilhadas .
- Minimize o número de projetos na sua organização que você permite criar reservas compartilhadas. Você pode controlar isso por meio da restrição de política da organização Projetos de Proprietários de Reservas Compartilhadas (
compute.sharedReservationsOwnerProjects
).- Você só pode listar as reservas criadas por cada projeto. Isso significa que as reservas compartilhadas são listadas apenas no projeto proprietário (você não pode listar as reservas compartilhadas com cada projeto ou listar todas as reservas compartilhadas em cada organização), portanto, ter apenas alguns projetos proprietários facilita o monitoramento e o gerenciamento de suas reservas compartilhadas.
- Limite o compartilhamento de uma reserva compartilhada apenas a alguns projetos para gerenciar mais facilmente a cota de seus recursos reservados.
- Para obter mais informações, consulte Permitir e restringir a criação e modificação de reservas compartilhadas por projetos .
- Minimize o número de reservas partilhadas 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 partilhadas com propriedades VM idênticas que cria ajuda a mitigar este limite.
- Ter menos reservas compartilhadas melhora a capacidade de gerenciamento.
- Compartilhe reservas apenas entre projetos com a mesma conta do Cloud Billing.
- Limite cada reserva compartilhada para que seja compartilhada apenas com projetos consumidores que tenham a mesma conta do Cloud Billing que o projeto proprietário. Isso torna mais fácil ver se uma reserva foi consumida e como ela foi cobrada.
- Para futuras solicitações de reserva, analise cuidadosamente a contagem total de VMs solicitadas.
- Se você estiver criando uma solicitação de reserva futura , certifique-se de solicitar 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.
- Quaisquer reservas sob demanda correspondentes não utilizadas que já existirão na data futura.
- O aumento no uso que você deseja reservar na data futura.
Por exemplo, suponha que você precise de 10 VMs adicionais em uma data futura e já terá os seguintes recursos em uma data futura:
- 40 VMs reservadas correspondentes
- 50 VMs não reservadas correspondentes
ou
- 40 VMs reservadas correspondentes
- 50 reservas sob demanda correspondentes não utilizadas
Como o seu uso existente na data futura já soma 90 VMs e reservas correspondentes, e você precisa de dez VMs adicionais, você deve especificar uma contagem total de
100
em sua solicitação de reserva futura.Para obter mais informações, consulte Contar e provisionar recursos reservados .
- Se você estiver criando uma solicitação de reserva futura , certifique-se de solicitar uma contagem total de VMs que considere todos os itens a seguir:
Faça download da política para 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 sua organização.
Use um editor de texto para abrir o arquivo
policy.yaml
e visualizar 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 ...
onde PROJECT_NUMBER_1 , PROJECT_NUMBER_2 e PROJECT_NUMBER_3 são os números dos únicos projetos da sua 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 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
. Você pode repetir este comando para cada projeto ao qual deseja conceder essa permissão.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Substitua o seguinte:
- PROJECT_NUMBER : o número do projeto (não o ID do projeto) de um projeto na sua organização que você deseja permitir a criação e modificação de reservas compartilhadas.
- ORGANIZATION_ID : o ID da sua organização.
Para conceder ou revogar permissões para vários projetos criarem e modificarem reservas compartilhadas, substitua a restrição de política da organização:
Para fazer download da política para 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 sua organização.
Use um editor de texto para modificar o arquivo
policy.yaml
para que a restriçãocompute.sharedReservationsOwnerProjects
liste todos os projetos que você deseja que tenham permissão para criar e modificar reservas compartilhadas em seuallowedValues
.- Para cada projeto ao qual você deseja conceder permissão para criar e modificar reservas compartilhadas, adicione o projeto em uma nova linha em
allowedValues
. - Para cada projeto em que você deseja revogar a permissão para criar e modificar reservas compartilhadas, exclua a linha desse projeto.
Quando terminar, certifique-se de que o arquivo
policy.yaml
seja semelhante ao seguinte:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
onde PROJECT_NUMBER_1 , PROJECT_NUMBER_2 e PROJECT_NUMBER_3 são os números dos projetos (não os IDs dos projetos) de todos os projetos da sua organização que você deseja ter permissão para criar e modificar reservas compartilhadas.
- Para cada projeto ao qual você deseja conceder permissão para criar e modificar reservas compartilhadas, adicione o projeto em uma nova linha em
Salve o arquivo
policy.yaml
e feche o editor de texto.Para atualizar a política da sua 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 sua 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 Windows, use o seguinte comando:
del policy.yaml
Recomendado: especifique um modelo de instância
Esta seção explica como usar um modelo de instância para definir as propriedades de uma reserva compartilhada. Ao utilizar um modelo de instância, você pode definir as propriedades de uma reserva e as VMs que podem consumir a reserva no mesmo local. 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 criou a reserva. Para os projetos com os quais a reserva é compartilhada, você deve criar modelos semelhantes nesses projetos ou criar VMs especificando propriedades diretamente.
Esta seção explica como usar uma VM existente para definir as propriedades de uma reserva. Ao utilizar as propriedades de uma VM existente, pode consumir a reserva criando VMs com propriedades que correspondam à VM de referência.
Especifique propriedades diretamente
Esta seção explica como definir diretamente as propriedades de uma reserva compartilhada. Este método exige que você garanta manualmente que as propriedades de suas VMs e reservas correspondam exatamente – qualquerpropriedades incompatíveis impedem o consumo .
Crie uma reserva que só possa ser consumida por VMs que a direcionem especificamente, conforme explicado nas seções a seguir deste documento. Em seguida, configure as VMs para consumir essa reserva específica .
Um modelo de instância contém configurações específicas do projeto, portanto você só pode acessar e usar um modelo de instância dentro do mesmo projeto. Se você criar uma reserva compartilhada especificando um modelo de instância, não poderá usar o mesmo modelo para criar VMs que possam consumir a reserva fora do projeto que a criou.
Crie sua reserva na mesma região e zona que os recursos do modelo de instância. Quaisquer recursos regionais ou zonais especificados em um modelo de instância, como um tipo de máquina ou um volume de disco permanente, restringem o uso do modelo aos locais onde esses recursos existem. Por exemplo, se o modelo de instância especificar um volume de disco permanente existente na zona
us-central1-a
, você só poderá criar sua reserva na mesma zona. Para verificar se um modelo existente especifica algum recurso que vincula o modelo a uma região ou zona específica, visualize os detalhes do modelo de instância e procure referências a recursos regionais ou zonais dentro dele.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 é exibida.
Em Nome , insira um nome para sua reserva.
Para Região e Zona , selecione onde deseja reservar recursos.
Na seção Tipo de compartilhamento , faça o seguinte:
Para especificar uma reserva compartilhada, selecione Compartilhado .
Clique em
Adicionar projetos e selecione os projetos da organização do projeto atual com os quais você deseja compartilhar a reserva. Você pode selecionar até 100 projetos de consumo.
Opcional: para permitir que uma reserva de VMs de GPU seja consumida por jobs de treinamento personalizados ou de previsão na Vertex AI, na seção de serviços do Google Cloud , selecione Compartilhar 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 automaticamente esta reserva, selecione Usar reserva automaticamente se ainda não estiver selecionado.
Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visem especificamente esta reserva por nome, selecione Selecionar reserva específica .
Em Número de instâncias de VM , insira o número de VMs que você deseja reservar.
Na seção Configuração da máquina , selecione Usar modelo de instância e selecione o modelo de instância de sua preferência. Se você selecionar um modelo de instância regional, só poderá reservar recursos dentro da mesma região que a região do modelo.
Na seção Exclusão automática , você pode ativar a opção de exclusão automática para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. Excluir reservas automaticamente pode ser útil para evitar cobranças desnecessárias ao deixar de consumir a reserva.
Para criar a reserva, clique em Criar .
A página Reservas é aberta. A criação da reserva compartilhada pode levar até um minuto para ser concluída.
RESERVATION_NAME
: o nome da reserva a ser criada.PROJECT_ID
: o ID do projeto onde você deseja reservar recursos e onde existe o modelo de instância.CONSUMER_PROJECT_IDS
: uma lista separada por vírgulas de IDs de projetos que podem consumir esta reserva — por exemplo,project-1,project-2
. Você pode incluir até 100 projetos de consumo. Esses projetos devem estar na mesma organização que o projeto proprietário. Não inclua o projeto proprietário. Por padrão, já é permitido 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 onde o modelo de instância está localizado. Se você especificar um modelo de instância regional, só poderá reservar VMs na mesma região da região do modelo.
INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente. Se o modelo de instância especificar um tipo de máquina A3 Mega, A3 High ou A3 Edge, você deverá incluir o sinalizador--require-specific-reservation
. Isto indica que apenas as VMs que visam especificamente a reserva podem consumi-la. Para obter mais informações, consulte Consumir VMs de uma reserva específica .NUMBER_OF_VMS
: o número de VMs a serem reservadas.ZONE
: a zona na qual reservar recursos.Para especificar que apenas as VMs que visam especificamente esta reserva podem consumi-la, inclua a sinalização
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --require-specific-reservation \ --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
Para permitir que uma reserva de VMs de GPU seja consumida por jobs de treinamento personalizados ou de previsão no Vertex AI, inclua a sinalização
--reservation-sharing-policy
definida comoALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --reservation-sharing-policy=ALLOW_ALL \ --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
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
com a sinalização--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --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
DELETE_AT_TIME
por uma data e hora formatada como um carimbo de data/hora RFC 3339 , que deve ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua o seguinte:
YYYY-MM-DD
: uma data formatada como ano de 4 dígitos, mês de 2 dígitos e dia do mês de 2 dígitos, separados por hífens (-
).HH:MM:SS
: uma hora formatada como uma hora de 2 dígitos usando um horário de 24 horas, minutos de 2 dígitos e segundos de 2 dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um deslocamento do Tempo Universal Coordenado (UTC) . Por exemplo, para usar o Horário Padrão do Pacífico (PST), especifique-08:00
. Como alternativa, para não usar deslocamento, especifiqueZ
.
Para excluir a reserva após um período específico, use o comando
gcloud beta compute reservations create
com a sinalização--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --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
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.
O campo
projectMap
.O campo
shareType
definido comoSPECIFIC_PROJECTS
.PROJECT_ID
: o ID do projeto onde você deseja reservar recursos e onde existe o modelo de instância.ZONE
: a zona na qual reservar recursos.RESERVATION_NAME
: o nome da reserva a ser criada.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: os IDs dos projetos que podem consumir esta reserva. Você pode incluir até 100 projetos de consumo. Esses projetos devem estar na mesma organização que o projeto proprietário. Não inclua o projeto proprietário. Por padrão já é permitido 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 onde o modelo de instância está localizado. Se você especificar um modelo de instância regional, só poderá reservar VMs na mesma região da região do modelo.
INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente. Se o modelo de instância especificar um tipo de máquina A3 Mega, A3 High ou A3 Edge, você deverá incluir o campospecificReservationRequired
no corpo da solicitação e definir o campo comotrue
. Isto indica que apenas as VMs que visam especificamente esta reserva podem consumi-la. Para obter mais informações, consulte Consumir VMs de uma reserva específica .Para especificar que apenas as VMs que visam especificamente esta reserva podem consumi-la, inclua o campo
specificReservationRequired
no corpo da solicitação e defina o campo comotrue
.Por exemplo, para criar uma reserva específica especificando um modelo de instância e compartilhar a reserva com dois projetos consumidores, faça uma solicitação da seguinte forma:
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" }, "specificReservationRequired": true }
Para permitir que uma reserva de VMs de GPU seja consumida por jobs de treinamento personalizados ou de previsão no Vertex AI, inclua o campo
serviceShareType
e defina-o comoALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "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" } }
Para permitir que o Compute Engine exclua automaticamente a reserva , selecione um dos seguintes métodos:
Para excluir a reserva em uma data e horário específico, faça uma solicitação
POST
para o métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAtTime
.Por exemplo, para criar uma reserva especificando um modelo de instância, excluir automaticamente a reserva em uma data e hora específicas e compartilhar a reserva com dois projetos consumidores, faça uma solicitação da seguinte forma:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "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
DELETE_AT_TIME
por uma data e hora formatada como um carimbo de data/hora RFC 3339 , que deve ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua o seguinte:
YYYY-MM-DD
: uma data formatada como ano de 4 dígitos, mês de 2 dígitos e dia do mês de 2 dígitos, separados por hífens (-
).HH:MM:SS
: uma hora formatada como uma hora de 2 dígitos usando um horário de 24 horas, minutos de 2 dígitos e segundos de 2 dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um deslocamento do Tempo Universal Coordenado (UTC) . Por exemplo, para usar o Horário Padrão do Pacífico (PST), especifique-08:00
. Como alternativa, para não usar deslocamento, especifiqueZ
.
Para excluir a reserva após um período específico, faça uma solicitação
POST
ao métodobeta.reservations.insert
. No corpo da solicitação, inclua o campodeleteAfterDuration
.Por exemplo, para criar uma reserva especificando um modelo de instância, excluir automaticamente a reserva após um período específico e compartilhar a reserva com dois projetos consumidores, faça uma solicitação da seguinte forma:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "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
DELETE_AFTER_DURATION
por uma duração em segundos. Por exemplo, especifique86400
para 86.400 segundos (1 dia).
Crie e use um modelo de instância da seguinte maneira:
Crie um modelo de instância baseado na VM de referência sem substituir as propriedades da VM de referência.
Crie VMs usando o modelo recém-criado seguindo um ou ambos os procedimentos a seguir:
Crie uma VM com propriedades que correspondam exatamente à VM de referência da seguinte maneira:
No projeto proprietário, crie uma VM baseada na VM de referência sem alterar as propriedades da VM que você está criando.
Nos projetos de consumo, crie uma VM enquanto garante manualmente que suas propriedades e as propriedades da VM de referência correspondem.
No console do Google Cloud, acesse a página Reservas .
Na guia Reservas sob demanda (padrão), clique em
Criar reserva .A página Criar uma reserva é aberta.
Em Nome , insira um nome para sua reserva.
Para Região e Zona , selecione onde deseja reservar recursos.
Na seção Tipo de compartilhamento , faça o seguinte:
Para especificar uma reserva compartilhada, selecione Compartilhado .
Clique em
Adicionar projetos e selecione os projetos da organização do projeto atual com os quais você deseja compartilhar a reserva. Você pode selecionar até 100 projetos de consumo.
Na seção Usar com instância de VM , selecione uma das seguintes opções:
Para permitir que os VMs correspondentes consumam automaticamente esta reserva, selecione Utilizar reserva automaticamente se ainda não estiver selecionado.
Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visem especificamente esta reserva por nome, selecione Selecionar reserva específica .
Em Número de instâncias de VM , insira o número de VMs que você deseja reservar.
Na seção Configuração da máquina , faça o seguinte:
Selecione Usar VM existente .
Para VM existente , selecione a VM cujas propriedades você deseja usar para criar a reserva.
Na seção Exclusão automática , você pode ativar a opção de exclusão automática para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. Excluir reservas automaticamente pode ser útil para evitar cobranças desnecessárias ao deixar de consumir a reserva.
Para criar a reserva, clique em Criar .
A página Reservas é aberta. A criação da reserva pode levar até um minuto para ser concluída.
No console do Google Cloud, acesse a página Reservas .
Na guia Reservas sob demanda (padrão), clique em
Criar reserva .Clique em
Criar reserva .A página Criar uma reserva é exibida.
Em Nome , insira um nome para sua reserva.
Para Região e Zona , selecione onde deseja reservar recursos.
Na seção Tipo de compartilhamento , faça o seguinte:
Para especificar uma reserva compartilhada, selecione Compartilhado .
Clique em
Adicionar projetos e selecione os projetos da organização do projeto atual com os quais você deseja compartilhar a reserva. Você pode selecionar até 100 projetos de consumo.
Opcional: para permitir que uma reserva de VMs de GPU seja consumida por jobs de treinamento personalizados ou de previsão na Vertex AI, na seção de serviços do Google Cloud , selecione Compartilhar reserva .
Na seção Usar com instância de VM , selecione uma das seguintes opções:
Para permitir que VMs correspondentes consumam automaticamente esta reserva, selecione Usar reserva automaticamente (padrão).
Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visem especificamente esta reserva por nome, selecione Selecionar reserva específica .
Em Número de instâncias de VM , insira o número de VMs que você deseja reservar.
Na seção Configuração da máquina , selecione Especificar tipo de máquina e especifique o seguinte:
Para Família de máquinas , Série e Tipo de máquina , selecione uma família de máquinas, uma série e um tipo de máquina.
Opcional: para especificar uma plataforma mínima de CPU ou anexar GPUs a VMs N1, 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, para CPU Platform , selecione uma opção.
Opcional: para anexar GPUs a VMs N1, clique em
Adicionar GPU . Em seguida, para Tipo de GPU e Número de GPUs , selecione o tipo e o número de GPUs a serem anexadas a cada VM N1.
Opcional: para anexar discos SSD locais a um tipo de máquina que não inclui discos SSD locais por padrão , faça o seguinte:
Em Número de discos , selecione o número de discos SSD locais a serem anexados.
Para Tipo de interface , selecione a interface do disco para os discos SSD locais.
Na seção Exclusão automática , você pode ativar a opção de exclusão automática para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. Excluir reservas automaticamente pode ser útil para evitar cobranças desnecessárias ao deixar de consumir a reserva.
Para criar a reserva, clique em Criar .
A página Reservas é aberta. A criação da reserva compartilhada pode levar até um minuto para ser concluída.
RESERVATION_NAME
: o nome da reserva a ser criada.MACHINE_TYPE
: um tipo de máquina a ser usado para cada VM. Se você especificar um tipo de máquina A3 Mega, A3 High ou A3 Edge, você deverá incluir o sinalizador--require-specific-reservation
. Isso indica que apenas as VMs que segmentam especificamente a reserva podem consumi -la. Para obter mais informações, consulte Consumir VMs de uma reserva específica .CONSUMER_PROJECT_IDS
: Uma lista separada por vírgula de IDs de projetos que podem consumir essa reserva-por exemplo,project-1,project-2
. Você pode incluir até 100 projetos de consumidores. Esses projetos devem estar na mesma organização que o projeto do proprietário. Não inclua o projeto do proprietário. Por padrão, já é permitido consumir a reserva.NUMBER_OF_VMS
: o número de VMs para reservar.ZONE
: a zona para reservar recursos.Para conectar as GPUs às suas VMs N1 reservadas, inclua o sinalizador
--accelerator
.gcloud compute reservations create RESERVATION_NAME \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua o seguinte:
NUMBER_OF_ACCELERATORS
: o número de GPUs a serem adicionadas por VM reservada.ACCELERATOR_TYPE
: um modelo GPU suportado para VMs N1 . Certifique -se de que o modelo GPU escolhido esteja disponível na zona onde você deseja reservar recursos. Caso contrário, a criação da reserva falha.
Para anexar os discos SSD locais a um tipo de máquina que não inclui discos SSD locais por padrão , inclua o sinalizador
--local-ssd
. Você só pode anexar discos SSD locais de 375 GB.gcloud compute reservations create RESERVATION_NAME \ --local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua o seguinte:
NUMBER_OF_LOCAL_SSD_DISKS
: o número de discos SSD locais a serem anexados.INTERFACE_TYPE
: o tipo de interface de disco que você deseja que cada disco SSD local use e que o tipo de máquina especificado suporta . Especifique um dos seguintes valores:Para a interface de disco NVME:
nvme
Para a interface de disco SCSI:
scsi
Para que as VMs reservadas usem uma plataforma mínima específica da CPU em vez da plataforma CPU padrão da zona, inclua o sinalizador
--min-cpu-platform
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua
MIN_CPU_PLATFORM
por uma plataforma CPU mínima. Para garantir que uma plataforma CPU esteja disponível na zona em que você esteja reservando recursos, consulte as plataformas de CPU disponíveis por zona .Para especificar que apenas as VMs que segmentam especificamente essa reserva podem consumi-la, inclua o sinalizador
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para permitir que uma reserva das VMs da GPU seja consumida por trabalhos de treinamento personalizados ou de previsão em vértice IA, inclua o conjunto de bandeira
--reservation-sharing-policy
paraALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para ativar o mecanismo de computação para excluir automaticamente a reserva , selecione um dos seguintes métodos:
Para excluir a reserva em uma data e hora específicas, use as
gcloud beta compute reservations create
COMMAND com o sinalizador--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua
DELETE_AT_TIME
por uma data e hora formatados como um registro de data e hora RFC 3339 , que deve ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua o seguinte:
YYYY-MM-DD
: Uma data formatada como um ano de 4 dígitos, mês de 2 dígitos e um dia de 2 dígitos do mês, separado por hífens (-
).HH:MM:SS
: Um tempo formatado como uma hora de 2 dígitos usando um tempo de 24 horas, 2 minutos e segundos de 2 dígitos, separado por cenários (:
.OFFSET
: o fuso horário formatado como um deslocamento do tempo universal coordenado (UTC) . Por exemplo, para usar o tempo padrão do Pacífico (PST), especifique-08:00
. Como alternativa, para não usar o deslocamento, especifiqueZ
.
Para excluir a reserva após uma duração específica, use o comando
gcloud beta compute reservations create
com o sinalizador--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua
DELETE_AFTER_DURATION
por uma duração em dias, horas, minutos ou segundos. Por exemplo, especifique30m
por 30 minutos ou1d2h3m4s
por 1 dia, 2 horas, 3 minutos e 4 segundos.
- Defina o campo
share_type
comoSPECIFIC_PROJECTS
. - No bloco
project_map
, especifique os IDs do projeto dos projetos com os quais você deseja compartilhar esta reserva. O campo
projectMap
.O campo
shareType
definido comoSPECIFIC_PROJECTS
.PROJECT_ID
: o ID do projeto em que você deseja reservar recursos.ZONE
: a zona para reservar recursos.RESERVATION_NAME
: o nome da reserva para criar.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: os IDs de projetos que podem consumir esta reserva. Você pode incluir até 100 projetos de consumidores. Esses projetos devem estar na mesma organização que o projeto do proprietário. Não inclua o projeto do proprietário. Por padrão, já é permitido consumir a reserva.NUMBER_OF_VMS
: o número de VMs para reservar.MACHINE_TYPE
: um tipo de máquina a ser usado para cada VM. Se você especificar um tipo de máquina A3 Mega, A3 High ou A3 Edge, deverá incluir o campospecificReservationRequired
no corpo da solicitação e definir o campo comotrue
. Isso indica que apenas as VMs que segmentam especificamente a reserva podem consumi -la.Para anexar as GPUs às suas VMs N1 reservadas, inclua o campo
guestAccelerators
no corpo da solicitação.Por exemplo, para criar uma reserva compartilhada com dois projetos de consumo e anexar GPUs a qualquer VMS N1 reservado, faça uma solicitação da seguinte forma:
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": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Substitua o seguinte:
NUMBER_OF_ACCELERATORS
: o número de GPUs a serem adicionadas por VM reservada.ACCELERATOR_TYPE
: um modelo GPU suportado para VMs N1 . Certifique -se de que o modelo GPU escolhido esteja disponível na zona onde você deseja reservar recursos. Caso contrário, a criação da reserva falha.
Para anexar discos SSD locais a um tipo de máquina que não inclui discos SSD locais por padrão , inclua o campo
localSsds
no órgão de solicitação. Você só pode anexar discos SSD locais de 375 GB.Por exemplo, para anexar dois discos SSD locais ao tipo de máquina que você deseja reservar enquanto especifica dois projetos de consumidores, faça uma solicitação da seguinte forma:
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": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" }, { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Substitua
INTERFACE_TYPE
pelo tipo de interface de disco que você deseja que cada disco SSD local use e que o tipo de máquina especificado suporta . Especifique um dos seguintes valores:Para a interface de disco NVME:
NVME
Para a interface de disco SCSI:
SCSI
Para que as VMs reservadas usem uma plataforma mínima específica da CPU em vez da plataforma CPU padrão da zona, inclua o campo
minCpuPlatform
no corpo da solicitação.Por exemplo, para criar uma reserva compartilhada ao especificar uma plataforma mínima de CPU e dois projetos de consumo, faça uma solicitação da seguinte maneira:
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", "minCpuPlatform": "MIN_CPU_PLATFORM" } } }
Substitua
MIN_CPU_PLATFORM
por uma plataforma CPU mínima. Para garantir que uma plataforma CPU esteja disponível na zona em que você esteja reservando recursos, consulte as plataformas de CPU disponíveis por zona .Para especificar que apenas as VMs que segmentam especificamente essa reserva podem consumi -la, inclua o campo
specificReservationRequired
no corpo da solicitação e defina o campo comotrue
.Por exemplo, para criar uma reserva específica e compartilhá -la com dois projetos de consumidores, faça uma solicitação da seguinte maneira:
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" } }, "specificReservationRequired": true }
Para permitir que uma reserva das VMs da GPU seja consumida por trabalhos de treinamento personalizados ou de previsão em vértice IA, inclua o campo
serviceShareType
e defina -o paraALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "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" } } }
Para ativar o mecanismo de computação para excluir 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
ao métodobeta.reservations.insert
. No órgão de solicitação, inclua o campodeleteAtTime
.Por exemplo, para criar uma reserva enquanto especifica uma data e hora para excluir uma reserva e compartilhar a reserva com dois projetos de consumidores, faça uma solicitação da seguinte forma:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "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
DELETE_AT_TIME
por uma data e hora formatados como um registro de data e hora RFC 3339 , que deve ser o seguinte:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua o seguinte:
YYYY-MM-DD
: Uma data formatada como um ano de 4 dígitos, mês de 2 dígitos e um dia de 2 dígitos do mês, separado por hífens (-
).HH:MM:SS
: Um tempo formatado como uma hora de 2 dígitos usando um tempo de 24 horas, 2 minutos e segundos de 2 dígitos, separado por cenários (:
.OFFSET
: o fuso horário formatado como um deslocamento do tempo universal coordenado (UTC) . Por exemplo, para usar o tempo padrão do Pacífico (PST), especifique-08:00
. Como alternativa, para não usar o deslocamento, especifiqueZ
.
Para excluir a reserva após uma duração específica, faça uma solicitação
POST
ao métodobeta.reservations.insert
. No órgão de solicitação, inclua o campodeleteAfterDuration
.Por exemplo, para criar uma reserva que calcule o mecanismo exclui após uma duração específica e compartilhe a reserva com dois projetos de consumidores, faça uma solicitação da seguinte forma:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "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
DELETE_AFTER_DURATION
por uma duração em segundos. Por exemplo, especifique86400
por 86.400 segundos (1 dia).
Aprenda a ver suas reservas .
Aprenda a anexar reservas a compromissos .
Aprenda a consumir reservas .
Aprenda a monitorar o consumo de 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.
Go
Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Java
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Node.js
Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e 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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções obrigatórias
Para obter as permissões necessárias para criar reservas compartilhadas, peça ao administrador que conceda a você as seguintes funções do IAM:
Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .
Estas funções predefinidas contêm as permissões necessárias para criar reservas compartilhadas. Para ver 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 criar reservas compartilhadas:
Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .
Melhores práticas
Ao criar reservas compartilhadas, são recomendadas as seguintes práticas recomendadas. Ao segui-los, você pode ajudar a otimizar a capacidade de gerenciamento e a utilização de reservas compartilhadas na sua organização.
Permitir e restringir a criação e modificação de reservas compartilhadas por projetos
Por padrão, nenhum projeto tem permissão para criar ou modificar reservas compartilhadas em uma organização. Adicione projetos à restrição de política da organização Projetos de Proprietários de Reservas Compartilhadas (
compute.sharedReservationsOwnerProjects
) para permitir que eles criem e modifiquem reservas compartilhadas. Para obter mais informações sobre restrições de política da organização, consulte Introdução ao serviço de política da organização .Use as etapas a seguir para visualizar e editar a restrição de política da organização Projetos de Proprietários de Reservas Compartilhadas (
compute.sharedReservationsOwnerProjects
).Ver a restrição da política da organização de reservas compartilhadas
Para ver 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 para Visualizar políticas da organização usando a restrição Projetos de proprietários 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 para Personalizar políticas para restrições de lista usando a restrição Projetos de proprietários 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.
Crie uma reserva compartilhada
Esta seção explica como criar reservas compartilhadas. Depois de criar uma reserva compartilhada, ela poderá ser modificada somente pelo projeto proprietário, mas os recursos para uma reserva compartilhada poderão ser consumidos pelo projeto proprietário ou por qualquer projeto consumidor.
Para consumir uma reserva, uma VM deve ter propriedades que correspondam exatamente a essa reserva. Para especificar as propriedades das VMs que você deseja reservar, selecione uma das seguintes seções deste documento:
Por padrão, uma reserva pode ser consumida automaticamente por qualquer VM com propriedades correspondentes. Se quiser controlar o consumo de reservas, siga um ou mais dos seguintes procedimentos:
Especifique um modelo de instância
Antes de criar uma reserva especificando um modelo de instância, certifique-se do seguinte:
Para criar uma reserva compartilhada especificando um modelo de instância, selecione uma das seguintes opções:
Console
gcloud
Para criar uma reserva compartilhada, use o comando
gcloud compute reservations create
com os sinalizadores--share-setting=projects
e--share-with
.Para criar uma reserva compartilhada especificando um modelo de instância e sem incluir sinalizações opcionais, execute o seguinte comando:
gcloud compute reservations create RESERVATION_NAME \ --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 o seguinte:
Por exemplo, para criar uma reserva especificando um modelo de instância global na zona
us-central1-a
, compartilhar a reserva com os projetosproject-1
eproject-2
e reservar dez VMs, cada uma usando um tipo de máquina predefinido N2 com 4 vCPUs, execute o seguinte comando:gcloud compute reservations create my-reservation \ --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
Opcionalmente, você pode fazer um ou mais dos seguintes procedimentos:
Ir
Java
Node.js
Pitão
DESCANSAR
Para criar uma reserva compartilhada, faça uma solicitação
POST
ao métodoreservations.insert
. No corpo da solicitação, inclua o seguinte:Por exemplo, para criar uma reserva compartilhada especificando um modelo de instância sem incluir nenhum campo opcional e compartilhar a reserva com dois projetos consumidores, 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 o seguinte:
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 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", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
Opcionalmente, você pode fazer um ou mais dos seguintes procedimentos:
Especifique uma VM existente
Só é possível criar uma reserva compartilhada com base em uma VM existente no mesmo projeto e zona que a VM.
Depois de criar a reserva, você pode consumi-la criando VMs com propriedades que correspondam à VM de referência. Você pode fazer isso seguindo um destes procedimentos:
Para criar uma reserva compartilhada que use as propriedades de uma VM existente, faça o seguinte:
Especifique propriedades diretamente
Para criar uma reserva compartilhada especificando propriedades diretamente, selecione uma das seguintes opções:
Console
gcloud
Para criar uma reserva compartilhada, use o comando
gcloud compute reservations create
com os sinalizadores--share-setting=projects
e--share-with
.Para criar uma reserva compartilhada especificando propriedades diretamente e sem incluir sinalizações opcionais, execute o seguinte comando:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Substitua o seguinte:
Por exemplo, para criar uma reserva na zona
us-central1-a
para dez VMs que usam um tipo de máquina predefinido N2 com 4 vcpus e compartilhe a reserva com projetosproject-1
eproject-2
, execute o seguinte comando:gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --share-setting=projects \ --share-with=project-1,project-2 \ --vm-count=10 \ --zone=us-central1-a
Opcionalmente, você pode fazer um ou mais dos seguintes:
Terraforma
Para criar uma reserva, use o recurso do Terraform
google_compute_reservation
. Para especificar uma reserva compartilhada, defina o blocoshare_settings
:Para obter mais informações sobre como usar o Terraform, consulte o uso do Terraform com Google Cloud .
DESCANSAR
Para criar uma reserva compartilhada, faça uma solicitação
POST
para o métodoreservations.insert
. No órgão de solicitação, inclua o seguinte:Por exemplo, para criar uma reserva compartilhada sem incluir campos opcionais e compartilhar a reserva com dois projetos de consumidores, 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 o seguinte:
Por exemplo, para criar uma reserva especificando um modelo de instância global na zona
us-central1-a
, compartilhe a reserva com projetosproject-1
eproject-2
e reserve dez VMs que usam um tipo de máquina predefinido N2 com 4 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", } } }
Opcionalmente, você pode fazer um ou mais dos seguintes:
Solução de problemas
Aprenda a solucionar problemas de criação de reservas .
O que vem 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 2025-04-21 UTC.
-