Este documento descreve como reduzir a latência da rede entre as suas instâncias do Compute Engine criando e aplicando políticas de posicionamento compactas às mesmas. Para saber mais sobre as políticas de posicionamento, incluindo as respetivas séries de máquinas suportadas, restrições e preços, consulte o artigo Vista geral das políticas de posicionamento.
Uma política de posicionamento compacta especifica que as suas instâncias devem ser posicionadas fisicamente mais próximas umas das outras. Isto pode ajudar a melhorar o desempenho e reduzir a latência da rede entre as suas instâncias quando, por exemplo, executa cargas de trabalho de computação de alto desempenho (HPC), aprendizagem automática (ML) ou servidor de base de dados.
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
-
Funções necessárias
Para receber as autorizações de que precisa para criar e aplicar uma política de posicionamento compacto a instâncias de computação, peça ao seu administrador para lhe conceder as seguintes funções de IAM no seu projeto:
-
Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Para criar uma reserva:
Administrador de computação (
roles/compute.admin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para criar e aplicar uma política de posicionamento compacta a instâncias de computação. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
As seguintes autorizações são necessárias para criar e aplicar uma política de posicionamento compacto a instâncias de computação:
-
Para criar políticas de posicionamento:
compute.resourcePolicies.create
no projeto -
Para aplicar uma política de posicionamento a instâncias existentes:
compute.instances.addResourcePolicies
no projeto -
Para criar instâncias:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnly
no instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.use
no projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIp
no projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir etiquetas para a VM:
compute.instances.setTags
na VM - Para definir etiquetas para a VM:
compute.instances.setLabels
na VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Para criar um novo disco para a VM:
compute.disks.create
no projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.use
no disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnly
no disco
-
Para criar uma reserva:
compute.reservations.create
no projeto -
Para criar um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para criar um grupo de instâncias geridas (MIG):
compute.instanceGroupManagers.create
no projeto -
Para ver os detalhes de uma instância:
compute.instances.get
no projeto
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Crie uma política de posicionamento compacta
Antes de criar uma política de posicionamento compacta, considere o seguinte:
Se quiser aplicar uma política de posicionamento compacta a uma instância de computação que não seja N2 ou N2D, recomendamos que especifique um valor de distância máximo.
Só pode aplicar políticas de posicionamento compactas a instâncias A4 ou A3 Ultra implementadas através das funcionalidades fornecidas pelo Cluster Director. Para mais informações, consulte o artigo Cluster Director na documentação do AI Hypercomputer.
Por predefinição, não pode aplicar políticas de posicionamento compactas com um valor de distância máxima a instâncias A3 Mega, A3 High ou A3 Edge. Para pedir acesso a esta funcionalidade, contacte o seu gestor de contas técnicas (TAM) atribuído ou a equipa de vendas.
Para criar uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para aplicar a política de posicionamento compacto a instâncias N2 ou N2D, crie a política através do comando
gcloud compute resource-policies create group-placement
com a flag--collocation=collocated
.gcloud compute resource-policies create group-placement POLICY_NAME \ --collocation=collocated \ --region=REGION
Substitua o seguinte:
POLICY_NAME
: o nome da política de posicionamento compacto.REGION
: a região na qual criar a política de posicionamento.
Para aplicar a política de posicionamento compacto a quaisquer outras instâncias suportadas, crie a política através do comando
gcloud beta compute resource-policies create group-placement
com as flags--collocation=collocated
e--max-distance
.gcloud beta compute resource-policies create group-placement POLICY_NAME \ --collocation=collocated \ --max-distance=MAX_DISTANCE \ --region=REGION
Substitua o seguinte:
POLICY_NAME
: o nome da política de posicionamento compacto.MAX_DISTANCE
: a configuração de distância máxima para as suas instâncias. O valor tem de estar entre1
, que especifica que as instâncias devem ser colocadas no mesmo rack para ter a latência de rede mais baixa possível, e3
, que especifica que as instâncias devem ser colocadas em clusters adjacentes. Se quiser aplicar a política de posicionamento compacto a uma reserva ou a uma instância Ultra A4 ou A3, não pode especificar um valor de1
.REGION
: a região na qual criar a política de posicionamento.
REST
Para aplicar a política de posicionamento compacto a instâncias N2 ou N2D, crie a política fazendo um pedido
POST
ao métodoresourcePolicies.insert
. No corpo do pedido, inclua o campocollocation
e defina-o comoCOLLOCATED
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED" } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde quer criar a política de posicionamento.REGION
: a região na qual criar a política de posicionamento.POLICY_NAME
: o nome da política de posicionamento compacto.
Para aplicar a política de posicionamento compacto a quaisquer outras instâncias suportadas, crie a política fazendo um pedido
POST
ao métodobeta.resourcePolicies.insert
. No corpo do pedido, inclua o seguinte:O campo
collocation
está definido comoCOLLOCATED
.O campo
maxDistance
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED", "maxDistance": MAX_DISTANCE } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde quer criar a política de posicionamento.REGION
: a região na qual criar a política de posicionamento.POLICY_NAME
: o nome da política de posicionamento compacto.MAX_DISTANCE
: a configuração de distância máxima para as suas instâncias. O valor tem de estar entre1
, que especifica que as instâncias devem ser colocadas no mesmo rack para ter a latência de rede mais baixa possível, e3
, que especifica que as instâncias devem ser colocadas em clusters adjacentes. Se quiser aplicar a política de posicionamento compacto a uma reserva ou a uma instância Ultra A4 ou A3, não pode especificar um valor de1
.
Aplique uma política de posicionamento compacta
Pode aplicar uma política de posicionamento compacto a uma instância de computação existente ou a um grupo de instâncias geridas (MIG), ou quando cria instâncias, modelos de instâncias, MIGs ou reservas de instâncias.
Para aplicar uma política de posicionamento compacto a um recurso do Compute Engine, selecione um dos seguintes métodos:
- Aplique a política a uma instância existente.
- Aplique a política ao criar uma instância.
- Aplique a política ao criar instâncias em massa.
- Aplique a política durante a criação de uma reserva.
- Aplique a política ao criar um modelo de instância.
- Aplique a política a instâncias num MIG.
Depois de aplicar uma política de posicionamento compacta a uma instância, pode validar a localização física da instância em relação a outras instâncias que especifiquem a mesma política de posicionamento.
Aplique a política a uma instância existente
Antes de aplicar uma política de posicionamento compacto a uma instância de computação existente, certifique-se do seguinte:
A instância e a política de posicionamento compacto têm de estar localizadas na mesma região. Por exemplo, se a política de posicionamento estiver localizada na região
us-central1
, a instância tem de estar localizada numa zona emus-central1
. Se precisar de migrar uma instância para outra região, consulte o artigo Mova uma instância entre zonas ou regiões.A instância tem de usar uma série de máquinas e uma política de manutenção do anfitrião suportadas. Se precisar de fazer alterações à instância, efetue uma ou ambas as seguintes ações:
Caso contrário, a aplicação da política de posicionamento compacto à instância falha. Se a instância já especificar uma política de posicionamento e quiser substituí-la, consulte Substitua uma política de posicionamento numa instância.
Para aplicar uma política de posicionamento compacta a uma instância existente, selecione uma das seguintes opções:
gcloud
Para aplicar uma política de posicionamento compacta a uma instância existente, use o comando
gcloud compute instances add-resource-policies
.gcloud compute instances add-resource-policies INSTANCE_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome de uma instância existente.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.ZONE
: a zona onde a instância está localizada.
REST
Para aplicar uma política de posicionamento compacta a uma instância existente, faça um pedido
POST
ao métodoinstances.addResourcePolicies
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addResourcePolicies { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontram a política de posicionamento compacta e a instância.ZONE
: a zona onde a instância está localizada.INSTANCE_NAME
: o nome de uma instância existente.REGION
: a região onde se encontra a política de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.
Aplique a política ao criar uma instância
Só pode criar uma instância de computação que especifique uma política de posicionamento compacta na mesma região que a política de posicionamento.
Para criar uma instância que especifique uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para criar uma instância que especifique uma política de posicionamento compacta, use o comando gcloud compute instances create
com as flags --maintenance-policy
e --resource-policies
.
gcloud compute instances create INSTANCE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=MAINTENANCE_POLICY \
--resource-policies=POLICY_NAME \
--zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância a criar.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.ZONE
: a zona na qual criar a instância.
REST
Para criar uma instância que especifique uma política de posicionamento compacta, faça um pedido POST
ao método instances.insert
.
No corpo do pedido, inclua os campos onHostMaintenance
e resourcePolicies
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento compacta.ZONE
: a zona onde criar a instância e onde o tipo de máquina está localizado. Só pode especificar uma zona na região da política de posicionamento compacto.INSTANCE_NAME
: o nome da instância a criar.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO, por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
REGION
: a região onde se encontra a política de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.
Para mais informações sobre as opções de configuração para criar uma instância, consulte o artigo Crie e inicie uma instância.
Aplique a política ao criar instâncias em massa
Só pode criar instâncias de computação em massa com uma política de posicionamento compacta na mesma região que a política de posicionamento.
Para criar instâncias em massa que especifiquem uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para criar instâncias em massa que especifiquem uma política de posicionamento compacta, use o comando gcloud compute instances bulk create
com as flags --maintenance-policy
e --resource-policies
.
Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome para as instâncias, execute o seguinte comando:
gcloud compute instances bulk create \
--count=COUNT \
--machine-type=MACHINE_TYPE \
--maintenance-policy=MAINTENANCE_POLICY \
--name-pattern=NAME_PATTERN \
--resource-policies=POLICY_NAME \
--zone=ZONE
Substitua o seguinte:
COUNT
: o número de instâncias a criar, que não pode ser superior ao número máximo de instâncias suportadas da política de posicionamento compacta especificada.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números num nome de instância, use uma sequência de carateres de cardinal (#
). Por exemplo, usarvm-#
para o padrão de nome gera instâncias com nomes que começam porvm-1
,vm-2
e continuam até ao número de instâncias especificado porCOUNT
.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.ZONE
: a zona na qual criar as instâncias em massa.
REST
Para criar instâncias em massa que especifiquem uma política de posicionamento compacta, faça um pedido POST
ao método instances.bulkInsert
.
No corpo do pedido, inclua os campos onHostMaintenance
e resourcePolicies
Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome para as instâncias, faça um pedido POST
da seguinte forma:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
"count": "COUNT",
"namePattern": "NAME_PATTERN",
"instanceProperties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento compacta.ZONE
: a zona na qual criar as instâncias em massa.COUNT
: o número de instâncias a criar, que não pode ser superior ao número máximo suportado de instâncias da política de posicionamento compacto especificada.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números num nome de instância, use uma sequência de carateres de cardinal (#
). Por exemplo, usarvm-#
para o padrão de nome gera instâncias com nomes que começam porvm-1
,vm-2
e continuam até ao número de instâncias especificado porCOUNT
.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO, por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
REGION
: a região onde se encontra a política de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.
Para mais informações sobre as opções de configuração para criar instâncias em massa, consulte o artigo Crie instâncias em massa.
Aplique a política durante a criação de uma reserva
Se quiser criar uma reserva de projeto único a pedido que especifique uma política de posicionamento compacta, tem de criar uma reserva especificamente segmentada. Quando criar instâncias para consumir a reserva, certifique-se do seguinte:
As instâncias têm de especificar a mesma política de posicionamento compacta aplicada à reserva.
As instâncias têm de segmentar especificamente a reserva para a consumir. Para mais informações, consulte o artigo Consuma instâncias de uma reserva específica.
Para criar uma reserva de projeto único com uma política de posicionamento compacta, selecione um dos seguintes métodos:
Crie a reserva especificando as propriedades diretamente, conforme descrito nesta secção.
Aplique a política durante a criação de um modelo de instância, conforme descrito neste documento, e, em seguida, crie uma reserva de projeto único especificando o modelo de instância recém-criado.
Para criar uma reserva de projeto único com uma política de posicionamento compacta especificando diretamente as propriedades, selecione uma das seguintes opções:
gcloud
Para criar uma reserva de projeto único com uma política de posicionamento compacta especificando propriedades diretamente, use o comando gcloud compute reservations create
com as flags --require-specific-reservation
e --resource-policies=policy
.
gcloud compute reservations create RESERVATION_NAME \
--machine-type=MACHINE_TYPE \
--require-specific-reservation \
--resource-policies=policy=POLICY_NAME \
--vm-count=NUMBER_OF_INSTANCES \
--zone=ZONE
Substitua o seguinte:
RESERVATION_NAME
: o nome da reserva.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.NUMBER_OF_INSTANCES
: o número de instâncias a reservar, que não pode ser superior ao número máximo de instâncias suportado da política de posicionamento compacta especificada.ZONE
: a zona na qual reservar instâncias. Só pode reservar instâncias numa zona na região da política de posicionamento compacto especificada.
REST
Para criar uma reserva de projeto único com uma política de posicionamento compacta, especificando as propriedades diretamente, faça um pedido POST
ao método reservations.insert
.
No corpo do pedido, inclua o campo resourcePolicies
e o campo specificReservationRequired
definido como true
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
{
"name": "RESERVATION_NAME",
"resourcePolicies": {
"policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
},
"specificReservation": {
"count": "NUMBER_OF_INSTANCES",
"instanceProperties": {
"machineType": "MACHINE_TYPE",
}
},
"specificReservationRequired": true
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento compacta.ZONE
: a zona na qual reservar instâncias. Só pode reservar instâncias numa zona na região da política de posicionamento compacto especificada.RESERVATION_NAME
: o nome da reserva.REGION
: a região onde se encontra a política de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.NUMBER_OF_INSTANCES
: o número de instâncias a reservar, que não pode ser superior ao número máximo de instâncias suportado da política de posicionamento compacta especificada.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.
Para mais informações sobre as opções de configuração para criar reservas de projeto único, consulte o artigo Crie uma reserva para um único projeto.
Aplique a política durante a criação de um modelo de instância
Se quiser criar um modelo de instância regional, tem de criar o modelo na mesma região que a política de posicionamento compacta. Caso contrário, a criação do modelo de instância falha.
Depois de criar um modelo de instância que especifica uma política de posicionamento compacta, pode usar o modelo para fazer o seguinte:
Para criar um modelo de instância que especifique uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para criar um modelo de instância que especifique uma política de posicionamento compacta,
use o comando
gcloud compute instance-templates create
com as flags --maintenance-policy
e --resource-policies
.
Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento compacta, execute o seguinte comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=MAINTENANCE_POLICY \
--resource-policies=POLICY_NAME
Substitua o seguinte:
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.
REST
Para criar um modelo de instância que especifique uma política de posicionamento compacta,
faça um pedido POST
a um dos seguintes métodos:
Para criar um modelo de instância global:
instanceTemplates.insert
method.Para criar um modelo de instância regional:
regionInstanceTemplates.insert
method.
No corpo do pedido, inclua os campos onHostMaintenance
e resourcePolicies
Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento compacta, faça um pedido POST
da seguinte forma:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"resourcePolicies": [
"POLICY_NAME"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontra a política de posicionamento compacta.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO, por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
MACHINE_TYPE
: um tipo de máquina suportado para políticas de posicionamento compactas.POLICY_NAME
: o nome de uma política de posicionamento compacta existente.MAINTENANCE_POLICY
: a política de manutenção do anfitrião da instância. Se a política de posicionamento compacta que especificar usar um valor de distância máximo de1
ou2
, ou o tipo de máquina escolhido não suportar a migração em direto, só pode especificarTERMINATE
. Caso contrário, pode especificarMIGRATE
ouTERMINATE
.
Para mais informações sobre as opções de configuração para criar um modelo de instância, consulte o artigo Crie modelos de instâncias.
Aplique a política a instâncias num MIG
Depois de criar um modelo de instância que especifique uma política de posicionamento compacta, pode usar o modelo para fazer o seguinte:
Aplique a política durante a criação de um MIG
Só pode criar instâncias de computação que especifiquem uma política de posicionamento compacta se as instâncias estiverem localizadas na mesma região que a política de posicionamento.
Para criar um MIG com um modelo de instância que especifique uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para criar um MIG com um modelo de instância que especifica uma política de posicionamento compacta, use o comando gcloud compute instance-groups managed create
.
Por exemplo, para criar um MIG zonal com um modelo de instância global que especifica uma política de posicionamento compacta, execute o seguinte comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--template=INSTANCE_TEMPLATE_NAME \
--zone=ZONE
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome do MIG a criar.SIZE
: o tamanho do MIG.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento compacta.ZONE
: a zona na qual criar o GIG, que tem de estar na região onde se encontra a política de posicionamento compacto.
REST
Para criar um MIG com um modelo de instância que especifique uma política de posicionamento compacta, faça um pedido POST
a um dos seguintes métodos:
Para criar um GIG zonal:
instanceGroupManagers.insert
método.Para criar um GIG regional:
regionInstanceGroupManagers.insert
método.
Por exemplo, para criar um MIG zonal com um modelo de instância global que especifica uma política de posicionamento compacta, faça um pedido POST
da seguinte forma:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
"name": "INSTANCE_GROUP_NAME",
"targetSize": SIZE,
"versions": [
{
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}
]
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde se encontram a política de posicionamento compacta e o modelo de instância que especifica a política de posicionamento.ZONE
: a zona na qual criar o GIG, que tem de estar na região onde se encontra a política de posicionamento compacta.INSTANCE_GROUP_NAME
: o nome do MIG a criar.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento compacta.SIZE
: o tamanho do MIG.
Para mais informações sobre as opções de configuração para criar MIGs, consulte o artigo Cenários básicos para criar MIGs.
Aplique a política a um MIG existente
Só pode aplicar uma política de posicionamento compacta a um GIG existente se o GIG estiver localizado na mesma região que a política de posicionamento ou, para GIGs zonais, numa zona na mesma região que a política de posicionamento.
Para atualizar um MIG de modo a usar um modelo de instância que especifica uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para atualizar um MIG de modo a usar um modelo de instância que especifica uma política de posicionamento compacta, use o comando gcloud compute instance-groups managed rolling-action start-update
.
Por exemplo, para atualizar um MIG zonal para usar um modelo de instância que especifica uma política de posicionamento compacta e substituir as instâncias existentes do MIG por novas instâncias que especificam as propriedades do modelo, execute o seguinte comando:
gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
--version=template=INSTANCE_TEMPLATE_NAME \
--zone=ZONE
Substitua o seguinte:
MIG_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento compacta.ZONE
: a zona onde o MIG está localizado. Só pode aplicar a política de posicionamento compacta a um MIG localizado na mesma região que a política de posicionamento.
REST
Para atualizar um GIG de modo a usar um modelo de instância que especifica uma política de posicionamento compacta e aplicar automaticamente as propriedades do modelo e da política de posicionamento às instâncias existentes no GIG, faça um pedido a um dos seguintes métodos:PATCH
Para atualizar um MIG zonal:
instanceGroupManagers.insert
método.Para atualizar um método MIG:
regionInstanceGroupManagers.insert
regional.
Por exemplo, para atualizar um MIG zonal de modo a usar um modelo de instância global que especifica uma política de posicionamento compacta e substituir as instâncias existentes do MIG por novas instâncias que especificam as propriedades do modelo, faça o seguinte pedido PATCH
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde o MIG, a política de posicionamento compacta e o modelo de instância que especifica a política de posicionamento estão localizados.ZONE
: a zona onde o MIG está localizado. Só pode aplicar a política de posicionamento compacta a um MIG localizado na mesma região que a política de posicionamento.MIG_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global existente que especifica uma política de posicionamento compacta.
Para mais informações sobre as opções de configuração para atualizar as instâncias num MIG, consulte o artigo Atualize e aplique novas configurações a instâncias num MIG.
Valide a localização física de uma instância
Depois de aplicar uma política de posicionamento compacto a uma instância de computação, pode ver a localização física da instância em relação a outras instâncias. Esta comparação está limitada a instâncias localizadas no seu projeto e que especificam a mesma política de posicionamento compacto. A visualização da localização física de uma instância ajuda a fazer o seguinte:
Confirme se a política foi aplicada com êxito.
Identificar as instâncias mais próximas umas das outras.
Para ver a localização física de uma instância em relação a outras instâncias que especificam a mesma política de posicionamento compacto, selecione uma das seguintes opções:
gcloud
Para ver a localização física de uma instância que especifica uma política de posicionamento compacto, use o comando gcloud compute instances describe
com a flag --format
.
gcloud compute instances describe INSTANCE_NAME \
--format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
--zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome de uma instância existente que especifica uma política de posicionamento compacta.ZONE
: a zona onde a instância está localizada.
O resultado é semelhante ao seguinte:
VM-Position
RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA
O valor do campo PHYSICAL_HOST
é composto por três partes. Estas
partes representam cada uma o cluster, o rack e o anfitrião onde a instância está
localizada.
Quando compara a posição de duas instâncias que usam a mesma política de posicionamento compacta no seu projeto, quanto mais partes do campo PHYSICAL_HOST
as instâncias partilharem, mais próximas estão fisicamente uma da outra. Por exemplo, suponha que duas instâncias especificam um dos seguintes valores de exemplo para o campo PHYSICAL_HOST
:
/CCCCCCC/xxxxxx/xxxx
: as duas instâncias são colocadas no mesmo cluster, o que equivale a um valor de distância máximo de2
. As instâncias colocadas no mesmo cluster têm uma latência de rede baixa./CCCCCCC/BBBBBB/xxxx
: as duas instâncias são colocadas no mesmo rack, o que equivale a um valor de distância máximo de1
. As instâncias colocadas no mesmo rack têm uma latência de rede inferior à das instâncias colocadas no mesmo cluster./CCCCCCC/BBBBBB/AAAA
: as duas instâncias partilham o mesmo anfitrião. As instâncias colocadas no mesmo anfitrião minimizam a latência da rede o máximo possível.
REST
Para ver a localização física de uma instância que especifica uma política de posicionamento compacta, faça um pedido GET
ao método instances.get
.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde a instância se encontra.ZONE
: a zona onde a instância está localizada.INSTANCE_NAME
: o nome de uma instância existente que especifica uma política de posicionamento compacta.
O resultado é semelhante ao seguinte:
{ ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy" ], "resourceStatus": { "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx" }, ... }
O valor do campo physicalHost
é composto por três partes. Estas
partes representam cada uma o cluster, o rack e o anfitrião onde a instância está
localizada.
Quando compara a posição de duas instâncias que usam a mesma política de posicionamento compacta no seu projeto, quanto mais partes do campo physicalHost
as instâncias partilharem, mais próximas estão fisicamente uma da outra. Por exemplo, suponha que duas instâncias especificam um dos seguintes valores de exemplo para o campo physicalHost
:
/CCCCCCC/xxxxxx/xxxx
: as duas instâncias são colocadas no mesmo cluster, o que equivale a um valor de distância máximo de2
. As instâncias colocadas no mesmo cluster têm uma latência de rede baixa./CCCCCCC/BBBBBB/xxxx
: as duas instâncias são colocadas no mesmo rack, o que equivale a um valor de distância máximo de1
. As instâncias colocadas no mesmo rack têm uma latência de rede inferior à das instâncias colocadas no mesmo cluster./CCCCCCC/BBBBBB/AAAA
: as duas instâncias partilham o mesmo anfitrião. As instâncias colocadas no mesmo anfitrião minimizam a latência da rede o máximo possível.
O que se segue?
Saiba como ver políticas de posicionamento.
Saiba como substituir, remover ou eliminar políticas de posicionamento.
Saiba como fazer o seguinte com uma instância de computação que especifica uma política de posicionamento: