Neste documento, explicamos como reduzir a latência de rede entre suas instâncias de máquina virtual (VM) criando e aplicando políticas de posicionamento compacto a elas.
Uma política de posicionamento compacto especifica que as VMs precisam ser colocadas fisicamente mais perto umas das outras. Isso pode ajudar a melhorar o desempenho e reduzir a latência de rede entre as VMs quando, por exemplo, você executa cargas de trabalho de computação de alto desempenho (HPC), machine learning (ML) ou servidor de banco de dados.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) -
Para criar uma reserva:
Administrador do Compute (
roles/compute.admin
) -
Para criar políticas de posicionamento:
compute.resourcePolicies.create
no projeto -
Para aplicar uma política de posicionamento a VMs atuais:
compute.instances.addResourcePolicies
no projeto -
Para criar VMs:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Usar um snapshot para criar a VM:
compute.snapshots.useReadOnly
no snapshot - Usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Atribuir uma rede legada à VM:
compute.networks.use
no projeto - Especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Atribuir um endereço IP externo à VM ao usar uma rede legada:
compute.networks.useExternalIp
no projeto - Especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Atribuir um endereço IP externo à VM ao usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Definir tags para a VM:
compute.instances.setTags
na VM - Definir rótulos para a VM:
compute.instances.setLabels
na VM - Definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Criar um disco para a VM:
compute.disks.create
no projeto - Anexar um disco atual no modo somente leitura ou de leitura e gravação:
compute.disks.use
no disco - Anexar um disco atual no modo somente leitura:
compute.disks.useReadOnly
no disco
-
Para criar uma reserva:
compute.reservations.create
no projeto -
Para criar um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para criar um grupo gerenciado de instâncias (MIG):
compute.instanceGroupManagers.create
no projeto -
Para ver os detalhes de uma reserva:
compute.instances.get
no projeto Para aplicar a política de posicionamento compacto a VMs N2 ou N2D, crie a política usando o 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:
POLICY_NAME
: o nome da política de posicionamento compacto.REGION
: a região em que a política de posicionamento será criada.
Para aplicar a política de posicionamento compacto a qualquer outra VM com suporte, crie a política usando o 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:
POLICY_NAME
: o nome da política de posicionamento compacto.MAX_DISTANCE
: a configuração da distância máxima para suas VMs. O valor precisa estar entre1
, que especifica a colocação das VMs no mesmo rack e ter a menor latência de rede possível, e3
, que especifica a colocação das VMs em clusters. Se você quiser aplicar a política de posicionamento compacto a uma reserva, não poderá especificar um valor de1
.REGION
: a região em que a política de posicionamento será criada.
Para aplicar a política de posicionamento compacto a VMs N2 ou N2D, crie a política fazendo uma solicitação
POST
ao métodoresourcePolicies.insert
. No corpo da solicitação, 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:
PROJECT_ID
: o ID do projeto em que você quer criar a política de posicionamento.REGION
: a região em que a política de posicionamento será criada.POLICY_NAME
: o nome da política de posicionamento compacto.
Para aplicar a política de posicionamento compacto a qualquer outra VM com suporte, crie a política fazendo uma solicitação
POST
para o métodobeta.resourcePolicies.insert
. No corpo da solicitação, inclua o seguinte:O campo
collocation
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:
PROJECT_ID
: o ID do projeto em que você quer criar a política de posicionamento.REGION
: a região em que a política de posicionamento será criada.POLICY_NAME
: o nome da política de posicionamento compacto.MAX_DISTANCE
: a configuração da distância máxima para suas VMs. O valor precisa estar entre1
, que especifica a colocação das VMs no mesmo rack e ter a menor latência de rede possível, e3
, que especifica a colocação das VMs em clusters. Se você quiser aplicar a política de posicionamento compacto a uma reserva, não poderá especificar um valor de1
.
- Aplique a política a uma VM atual.
- Aplique a política ao criar uma VM.
- Aplique a política ao criar VMs em massa.
- Aplique a política ao criar uma reserva
- Aplique a política ao criar um modelo de instância.
- Aplique a política às VMs em um MIG.
A VM e a política de posicionamento compacto precisam estar na mesma região. Por exemplo, se a política de posicionamento estiver na região
us-central1
, a VM precisará estar em uma zona emus-central1
. Se você precisar migrar uma VM para outra região, consulte Mova uma VM entre zonas ou regiões.A VM precisa usar uma série de máquinas e política de manutenção do host aceitos. Se você precisar fazer alterações na VM, siga um ou ambos os procedimentos a seguir:
Para aplicar uma política de posicionamento compacto a uma VM atual, use o comando
gcloud compute instances add-resource-policies
.gcloud compute instances add-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua:
VM_NAME
: o nome de uma VM existente.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que a VM está localizada.
Para aplicar uma política de posicionamento compacto a uma VM, faça uma solicitação
POST
ao métodoinstances.addResourcePolicies
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto e a VM estão localizadas.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome de uma VM existente.REGION
: a região em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.
VM_NAME
: o nome da VM a ser criada.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que a instância de VM será criada.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.ZONE
: a zona em que a VM será criada e o tipo de máquina está localizado. Só é possível especificar uma zona dentro da região da política de posicionamento compacto.VM_NAME
: o nome da VM a ser criada.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
REGION
: a região em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.COUNT
: o número de VMs a serem criadas, que não podem ser maior que o número máximo permitido de VMs da política de posicionamento compacto especificada.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.NAME_PATTERN
: o padrão de nome para as VMs. Para substituir uma sequência de números no nome de uma VM, use uma sequência de caracteres hash (#
). Por exemplo, usarvm-#
para o padrão de nome gera VMs com nomes que começam comvm-1
,vm-2
e continuam até o número de VMs especificado porCOUNT
.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que as VMs em massa serão criadas.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.ZONE
: a zona em que as VMs em massa serão criadas.COUNT
: o número de VMs a serem criadas, que não podem ser maior que o número máximo permitido de VMs da política de posicionamento compacto especificada.NAME_PATTERN
: o padrão de nome para as VMs. Para substituir uma sequência de números no nome de uma VM, use uma sequência de caracteres hash (#
). Por exemplo, usarvm-#
para o padrão de nome gera VMs com nomes que começam comvm-1
,vm-2
e continuam até o número de VMs especificado porCOUNT
.with names starting with `vm-1`, `vm-2`, and continuing up to the number
de VMs especificadas por
COUNT
.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
REGION
: a região em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.As VMs precisam especificar a mesma política de posicionamento compacto aplicada à reserva.
As VMs precisam visar especificamente a reserva para consumi-la. Para mais informações, consulte Consumir VMs de uma reserva específica.
Crie a reserva especificando propriedades diretamente, conforme descrito nesta seção.
Aplique a política ao criar um modelo de instância conforme descrito neste documento. Depois, crie uma reserva de projeto único Especificando o modelo de instância recém-criado.
RESERVATION_NAME
: o nome da reserva.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.NUMBER_OF_VMS
: o número de VMs a serem reservadas, que não podem ser maior que o número máximo permitido de VMs da política de posicionamento compacto especificada.ZONE
: a zona em que as VMs serão reservadas. Você só pode reservar VMs em uma zona dentro da região da política de posicionamento compacto especificada.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.ZONE
: a zona em que as VMs serão reservadas. Você só pode reservar VMs em uma zona dentro da região da política de posicionamento compacto especificada.RESERVATION_NAME
: o nome da reserva.REGION
: a região em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.NUMBER_OF_VMS
: o número de VMs a serem reservadas, que não podem ser maior que o número máximo permitido de VMs da política de posicionamento compacto especificada.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.Para criar um modelo de instância global: método
instanceTemplates.insert
.Para criar um modelo de instância regional: método
regionInstanceTemplates.insert
.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.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 imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
MACHINE_TYPE
: um tipo de máquina compatível com políticas de posicionamento compacto.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de1
ou2
, só será possível especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.INSTANCE_GROUP_NAME
: o nome do MIG que será criado.SIZE
: o tamanho do MIG.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.ZONE
: a zona em que o MIG será criado, precisa estar na região em que a política de posicionamento compacto está localizada.Para criar um MIG zonal: método
instanceGroupManagers.insert
.Para criar um MIG regional: método
regionInstanceGroupManagers.insert
.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto e o modelo de instância que especifica a política estão localizados.ZONE
: a zona em que o MIG será criado, precisa estar na região em que a política de posicionamento compacto está localizada.INSTANCE_GROUP_NAME
: o nome do MIG que será criado.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.SIZE
: o tamanho do MIG.MIG_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.ZONE
: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG localizado na mesma região da política de posicionamento.Para atualizar um MIG zonal: método
instanceGroupManagers.insert
.Para atualizar um MIG regional: Método
regionInstanceGroupManagers.insert
.PROJECT_ID
: o ID do projeto em que o MIG, a política de posicionamento compacto e o modelo de instância que especifica a política de posicionamento estão localizados.ZONE
: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG localizado na mesma região da política de posicionamento.MIG_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.VM_NAME
: o nome de uma VM existente.ZONE
: a zona em que a VM está localizada./CCCCCCC/xxxxxx/xxxx
: as duas VMs são colocadas no mesmo cluster, o que equivale a um valor de distância máxima de2
. As VMs colocadas no mesmo cluster têm baixa latência de rede./CCCCCCC/BBBBBB/xxxx
: as duas VMs são colocadas no mesmo rack, o que equivale a um valor de distância máxima de1
. As VMs colocadas no mesmo rack têm uma latência de rede menor do que as VMs colocadas no mesmo cluster./CCCCCCC/BBBBBB/AAAA
: as duas VMs compartilham o mesmo host. As VMs colocadas no mesmo host minimizam a latência de rede o máximo possível.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome de uma VM existente que especifica uma política de posicionamento./CCCCCCC/xxxxxx/xxxx
: as duas VMs são colocadas no mesmo cluster, o que equivale a um valor de distância máxima de2
. As VMs colocadas no mesmo cluster têm baixa latência de rede./CCCCCCC/BBBBBB/xxxx
: as duas VMs são colocadas no mesmo rack, o que equivale a um valor de distância máxima de1
. As VMs colocadas no mesmo rack têm uma latência de rede menor do que as VMs colocadas no mesmo cluster./CCCCCCC/BBBBBB/AAAA
: as duas VMs compartilham o mesmo host. As VMs colocadas no mesmo host minimizam a latência de rede o máximo possível.Saiba como consultar as políticas de posicionamento.
Saiba como substituir, remover ou excluir políticas de posicionamento.
Aprenda a fazer o seguinte com uma VM que especifica uma política de posicionamento:
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para ter as permissões necessárias para criar e aplicar uma política de posicionamento compacto às VMs, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para criar e aplicar uma política de posicionamento compacto às VMs. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar e aplicar uma política de posicionamento compacto às VMs:
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar uma política de colocação de compactação
A menos que você queira aplicar uma política de posicionamento compacto a VMs N2 ou N2D, o Google Cloud recomenda especificar um valor de distância máxima ao criar a política. Para mais informações, consulte Como funcionam as políticas de posicionamento compacto.
Para criar uma política de posicionamento compacto, selecione uma das seguintes opções:
gcloud
REST
Aplicar uma política de posicionamento compacto
É possível aplicar uma política de posicionamento compacto a uma VM ou MIG atual ou ao criar VMs, modelos de instância, MIGs ou reservas de VMs.
Para aplicar uma política de posicionamento compacto a um recurso do Compute Engine, selecione um dos seguintes métodos:
Depois de aplicar uma política de posicionamento compacto a uma VM, será possível verificar o local físico da VM em relação a outras VMs que especificam a mesma política de posicionamento.
Aplicar a política a uma VM
Antes de aplicar uma política de posicionamento compacto a uma VM existente, verifique o seguinte:
Caso contrário, a aplicação da política de posicionamento compacto a uma VM vai falhar. Se a VM já especificar uma política de posicionamento e você quiser substituí-la, consulte Substituir uma política de posicionamento em uma VM.
Para aplicar uma política de posicionamento compacto a uma VM, selecione uma das seguintes opções:
gcloud
REST
Aplicar a política ao criar uma VM
Só é possível criar uma VM que especifique uma política de posicionamento compacto na mesma região da política de posicionamento.
Para criar uma VM que especifique uma política de posicionamento compacto, selecione uma das seguintes opções:
gcloud
Para criar uma VM que especifique uma política de posicionamento compacto, use o comando
gcloud compute instances create
com as flags--maintenance-policy
e--resource-policies
.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --maintenance-policy=MAINTENANCE_POLICY \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua:
REST
Para criar uma VM que especifique uma política de posicionamento compacto, faça uma solicitação
POST
ao métodoinstances.insert
. No corpo da solicitação, inclua os camposonHostMaintenance
eresourcePolicies
..POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY" } }
Substitua:
Para mais informações sobre as opções de configuração para criar uma VM, consulte Criar e iniciar uma instância de VM.
Aplicar a política ao criar VMs em massa
Só é possível criar VMs em massa com uma política de posicionamento compacto na mesma região que a política de posicionamento.
Para criar VMs em massa que especifiquem uma política de posicionamento compacto, selecione uma das seguintes opções:
gcloud
Para criar VMs em massa que especifiquem uma política de posicionamento compacto, use o comando
gcloud compute instances bulk create
com as flags--maintenance-policy
e--resource-policies
.Por exemplo, para criar VMs em massa em uma única zona e especificar um padrão de nome para as VMs, 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:
REST
Para criar VMs em massa que especifiquem uma política de posicionamento compacto, faça uma solicitação
POST
para o métodoinstances.bulkInsert
. No corpo da solicitação, inclua os camposonHostMaintenance
eresourcePolicies
..Por exemplo, para criar VMs em massa em uma única zona e especificar um padrão de nome para elas, faça uma solicitação
POST
da seguinte maneira:POST https://www.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:
Para mais informações sobre as opções de configuração para criar VMs em massa, consulte Criar VMs em massa.
Aplicar a política ao criar uma reserva
Se você quiser criar uma reserva de projeto único sob demanda que especifique uma política de posicionamento compacto, crie uma reserva especificamente segmentada. Ao criar VMs para consumir a reserva, verifique o seguinte:
Para criar uma reserva de projeto único com uma política de posicionamento compacto, selecione um dos seguintes métodos:
Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, selecione uma das seguintes opções:
gcloud
Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, use o comando
gcloud compute reservations create
com 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_VMS \ --zone=ZONE
Substitua:
REST
Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, faça uma solicitação
POST
ao métodoreservations.insert
. No corpo da solicitação, inclua o camporesourcePolicies
e o campospecificReservationRequired
definido comotrue
.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_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", } }, "specificReservationRequired": true }
Substitua:
Para mais informações sobre as opções de configuração para criar reservas de projeto único, consulte Crie uma reserva para um único projeto.
Aplicar a política ao criar um modelo de instância
Se você quiser criar um modelo de instância regional, crie o modelo na mesma região da política de posicionamento compacto. Caso contrário, a criação do modelo de instância falhará.
Depois de criar um modelo de instância que especifica uma política de posicionamento compacto, é possível usar o modelo para fazer o seguinte:
Para criar um modelo de instância que especifique uma política de posicionamento compacto, 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 compacto, 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:
REST
Para criar um modelo de instância que especifique uma política de posicionamento compacto, faça uma solicitação
POST
para um dos seguintes métodos:No corpo da solicitação, inclua os campos
onHostMaintenance
eresourcePolicies
..Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento compacto, faça uma solicitação
POST
da seguinte maneira: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:
Para saber mais sobre as opções de configuração para criar um modelo de instância, consulte Criar modelos de instância.
Aplicar a política a VMs em um MIG
Depois de criar um modelo de instância que especifique uma política de posicionamento compacto, é possível usar o modelo para fazer o seguinte:
.Aplicar a política ao criar um MIG
Só é possível criar VMs que especificam uma política de posicionamento compacto se elas estiverem localizadas na mesma região da política de posicionamento.
Para criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto, selecione uma das seguintes opções:
gcloud
Para criar um MIG usando um modelo de instância que especifica uma política de posicionamento compacto, use o comando
gcloud compute instance-groups managed create
.Por exemplo, para criar um MIG zonal usando um modelo de instância global que especifique uma política de posicionamento compacto, execute o seguinte comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Substitua:
REST
Para criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto faça uma solicitação
POST
a um dos seguintes métodos:Por exemplo, para criar um MIG zonal usando um modelo de instância global que especifica uma política de posicionamento compacto, faça uma solicitação
POST
da seguinte maneira: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:
Para mais informações sobre as opções de configuração para criar MIGs, consulte Cenários básicos para criar MIGs.
Aplicar a política a um MIG atual
Só é possível aplicar uma política de posicionamento compacto a um MIG se ele estiver localizado na mesma região da política de posicionamento ou, no caso de MIGs zonais, em uma zona na mesma região.
Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto selecione uma das seguintes opções:
gcloud
Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto, use o comando
gcloud compute instance-groups managed rolling-action start-update
.Por exemplo, para atualizar um MIG zonal para utilizar um modelo de instância que especifique uma política de posicionamento compacto e substituir as VMs atuais do MIG por novas VMs que especifiquem 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:
REST
Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto e aplicar automaticamente as propriedades do modelo e da política de posicionamento às VMs atuais no MIG, faça uma solicitação
PATCH
a um dos métodos a seguir:Por exemplo, para atualizar um MIG zonal para utilizar um modelo de instância global que especifica uma política de posicionamento compacto e substituir as VMs existentes do MIG por novas VMs que especificam as propriedades do modelo, faça a solicitação
PATCH
a seguir:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" }
Substitua:
Para mais informações sobre as opções de configuração para atualizar as VMs em um MIG, consulte Atualizar e aplicar novas configurações a VMs em um MIG.
Verificar o local físico de uma VM
Depois de aplicar uma política de posicionamento compacto a uma VM, será possível ver como ela afetou a localização física em relação a outras VMs que especificam a mesma política. Isso ajuda a determinar se a política de posicionamento compacto foi aplicada corretamente a uma VM e mapear quais VMs estão mais próximas umas das outras.
Para verificar o local físico de uma VM que especifica uma política de posicionamento em relação a outras VMs, selecione uma das seguintes opções:
gcloud
Para visualizar o local físico de uma VM que especifica uma política de posicionamento compacto, use o comando
gcloud compute instances describe
com o flag--format
.gcloud compute instances describe VM_NAME \ --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \ --zone=ZONE
Substitua:
O resultado será assim:
VM-Position RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy'] PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA
O valor do campo
PHYSICAL_HOST
é composto de três partes. Cada parte representa o cluster, o rack e o host em que a VM está localizada.Ao comparar a posição de duas VMs que especificam a mesma política de posicionamento compacto, quanto mais partes no campo
PHYSICAL_HOST
as VMs compartilharem, mais próximas elas estarão uma da outra. Por exemplo, se duas VMs especificarem um dos seguintes valores de amostra para o campoPHYSICAL_HOST
:REST
Para visualizar o local físico de uma VM que especifica uma política de posicionamento compacto, faça uma solicitação
GET
para o métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
O resultado será assim:
{ ... "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 de três partes. Cada parte representa o cluster, o rack e o host em que a VM está localizada.Ao comparar a posição de duas VMs que especificam a mesma política de posicionamento compacto, quanto mais partes no campo
physicalHost
as VMs compartilharem, mais próximas elas estarão uma da outra. Por exemplo, se duas VMs especificarem um dos seguintes valores de amostra para o campophysicalHost
:A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-21 UTC.
-