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.
É possível aplicar uma política de posicionamento compacto ao:
Criar ou atualizar uma VM
Criar uma reserva de projeto único
Criar um modelo de instância. Em seguida, o modelo de instância aplica a política de posicionamento compacto ao:
Criar uma VM
Criar ou atualizar um grupo gerenciado de instâncias (MIG)
Criar uma reserva de projeto único
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.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Funções exigidas
Para receber as permissões necessárias para criar e aplicar uma política de posicionamento compacto às VMs,
peça ao seu administrador para conceder a você o papel de
Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1
) IAM na VM ou no projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido 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:
-
Para criar políticas de posicionamento:
compute.resourcePolicies.create
no projeto -
Para aplicar uma política de posicionamento a uma VM existente:
compute.instances.addResourcePolicies
no projeto. - Para ver os detalhes de uma reserva:
compute.instances.get
no projeto
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Restrições
Além das restrições gerais das políticas de posicionamento, as políticas de posicionamento compacto também têm as seguintes restrições:
Para políticas de posicionamento compacto, é possível usar
max-distance
(Pré-lançamento) para controlar melhor o distância das VMs. Na tabela a seguir, descrevemos o número compatível de VMs e a política de manutenção do host para cada valormax-distance
:Valor de max-distance
Descrição Número máximo de VMs Política de manutenção de host compatível Não especificado Com base na disponibilidade, as VMs são colocadas o mais perto possível uma da outra. 150 Migrar ou encerrar 3
As VMs são colocadas em clusters adjacentes para baixa latência. 1.500 Migrar ou encerrar 2
As VMs são colocadas em racks adjacentes e têm uma latência de rede menor do que as VMs colocadas em clusters adjacentes. 150 Encerrar 1
As VMs são colocadas no mesmo rack e minimizam a latência da rede o máximo possível. 22 Encerrar Só é possível aplicar uma política de posicionamento compacto a séries de máquinas A2, A3, C2, C3, C2D, C3D, G2, H3, N2 e N2D. Se você usar
max-distance
ao criar uma política de posicionamento compacto, não será possível aplicá-la às séries de máquinas A3, G2, N2 e N2D.Não é possível aplicar políticas de posicionamento compacto a VMs que especificam nós de locatário individual.
Se você quiser criar uma política de posicionamento compacto para uma reserva, consulte os requisitos adicionais para reservas.
Criar uma política posicionamento compacto
Para criar uma política de posicionamento compacto, use um dos seguintes métodos:
Recomendado: sem uma contagem fixa.
É possível aplicar uma política de posicionamento compacto que não especifique uma contagem fixa de VMs para um número não especificado de VMs. Isso torna a política de posicionamento compacto eficaz, independente do número de VMs a que você a aplica.
Com uma contagem fixa.
É possível aplicar uma política de posicionamento compacto que especifique uma contagem fixa de VMs apenas a um número exato de VMs. Isso faz com que a política de posicionamento compacto só seja eficaz se for aplicada ao número especificado de VMs.
Sem uma contagem fixa
É possível criar uma política de posicionamento compacto usando a CLI gcloud e a API Compute Engine.
gcloud
Para criar uma política de posicionamento compacto, use o
comando gcloud compute resource-policies create group-placement
com o flag --collocation=COLLOCATED
.
gcloud compute resource-policies create group-placement POLICY_NAME \
--collocation=COLLOCATED \
--project=PROJECT_ID \
--region=REGION
Substitua:
POLICY_NAME
: o nome da política a ser criada.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 será criada. Se você quiser aplicar a política de posicionamento compacto às VMs existentes, crie a política em uma região que contenha a zona em que as VMs estão localizadas.
Como opção, para melhor controle sobre a distância que separa as VMs
quando há requisitos rigorosos de latência de rede, crie uma
política de posicionamento compacto usando o
comando gcloud beta compute resource-policies create group-placement
com os flags --collocation=COLLOCATED
e --max-distance
.
gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=COLLOCATED \
--max-distance=MAX_DISTANCE \
--project=PROJECT_ID \
--region=REGION
Substitua:
POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.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. Dependendo do tipo de máquina e da zona especificados nas VMs em que você aplica uma política de posicionamento compacto:Se uma zona tiver capacidade disponível, uma política de posicionamento compacto com um valor
max-distance
mais alto (como3
) talvez faça com que as VMs sejam colocadas mais perto umas das outras.Se uma zona não tiver capacidade, uma política de posicionamento compacto com um valor
max-distance
menor (como1
) aumentará a probabilidade de falha ao aplicar a política a uma ou mais das VMs.
PROJECT_ID
: o ID do projeto em que você quer criar a política de posicionamento.REGION
: a região em que você quer criar a política.
REST
Para criar uma política de posicionamento compacto, faça uma solicitação POST
ao
método resourcePolicies.insert
com o campo collocation
definido como COLLOCATED
.
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. Se você quiser aplicar a política de posicionamento compacto às VMs existentes, crie a política em uma região que contenha a zona em que as VMs estão localizadas.POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.
Como opção, para melhor controle sobre a distância que as VMs são colocadas
quando há requisitos rigorosos de latência de rede, crie uma
política de posicionamento compacto fazendo uma solicitação POST
ao
beta.resourcePolicies.insert
com o campo collocation
definido como COLLOCATED
e o campo max-distance
.
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.REGION
: a região em que você quer criar a política.POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.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. Dependendo do tipo de máquina e da zona especificados nas VMs em que você aplica uma política de posicionamento compacto:Se uma zona tiver capacidade disponível, uma política de posicionamento compacto com um valor
max-distance
mais alto (como3
) talvez faça com que as VMs sejam colocadas mais perto umas das outras.Se uma zona não tiver capacidade, uma política de posicionamento compacto com um valor
max-distance
menor (como1
) aumentará a probabilidade de falha ao aplicar a política a uma ou mais das VMs.
Com uma contagem fixa
É possível criar uma política de posicionamento compacto que especifique uma contagem fixa de VMs usando a gcloud CLI e a API Compute Engine.
gcloud
Para criar uma política de posicionamento compacto que especifique uma contagem fixa de
VMs, use o
comando gcloud compute resource-policies create group-placement
com as sinalizações --collocation=COLLOCATED
e --vm-count
.
gcloud compute resource-policies create group-placement POLICY_NAME \
--collocation=COLLOCATED \
--project=PROJECT_ID \
--region=REGION \
--vm-count=VM_COUNT
Substitua:
POLICY_NAME
: o nome da política a ser criada.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 será criada. Se você quiser aplicar a política de posicionamento compacto às VMs existentes, crie a política em uma região que contenha a zona em que as VMs estão localizadas.VM_COUNT
: o número exato de VMs a que você pode aplicar a política de posicionamento compacto. O valor precisa estar entre1
e150
, que é o número máximo de VMs a que uma política de posicionamento compacto pode ser aplicada.
Como opção, para melhor controle sobre a distância que separa as VMs
quando há requisitos rigorosos de latência de rede, crie uma
política de posicionamento compacto usando o
comando gcloud beta compute resource-policies create group-placement
com os flags --collocation=COLLOCATED
, --max-distance
e --vm-count
.
gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=COLLOCATED \
--max-distance=MAX_DISTANCE \
--project=PROJECT_ID \
--region=REGION \
--vm-count=VM_COUNT
Substitua:
POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.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. Dependendo do tipo de máquina e da zona especificados nas VMs em que você aplica uma política de posicionamento compacto:Se uma zona tiver capacidade disponível, uma política de posicionamento compacto com um valor
max-distance
mais alto (como3
) talvez faça com que as VMs sejam colocadas mais perto umas das outras.Se uma zona não tiver capacidade, uma política de posicionamento compacto com um valor
max-distance
menor (como1
) aumentará a probabilidade de falha ao aplicar a política a uma ou mais das VMs.
PROJECT_ID
: o ID do projeto em que você quer criar a política de posicionamento.REGION
: a região em que você quer criar a política.VM_COUNT
: o número exato de VMs a que você pode aplicar a política de posicionamento compacto. O valor precisa estar entre1
e o número máximo de VMs a que é possível aplicar a política de posicionamento com base no valorMAX_DISTANCE
especificado.
REST
Para criar uma política de posicionamento compacto que especifique uma contagem fixa de
VMs, faça uma solicitação POST
para o
método resourcePolicies.insert
com o collocation
definido como COLLOCATED
e o campo vmCount
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"vmCount": "VM_COUNT"
}
}
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. Se você quiser aplicar a política de posicionamento compacto às VMs existentes, crie a política em uma região que contenha a zona em que as VMs estão localizadas.POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.VM_COUNT
: o número exato de VMs a que você pode aplicar a política de posicionamento compacto. O valor precisa estar entre1
e150
, que é o número máximo de VMs a que uma política de posicionamento compacto pode ser aplicada.
Como opção, para melhor controle sobre a distância que separa as VMs
quando há requisitos rigorosos de latência de rede, crie uma
política de posicionamento compacto fazendo uma solicitação POST
ao
método beta.resourcePolicies.insert
com o campo collocation
definido como COLLOCATED
e os campos max-distance
e vmCount
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": "MAX_DISTANCE",
"vmCount": "VM_COUNT"
}
}
Substitua:
PROJECT_ID
: o ID do projeto em que você quer criar a política.REGION
: a região em que você quer criar a política.POLICY_NAME
: o nome da política de posicionamento compacto a ser criada.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. Dependendo do tipo de máquina e da zona especificados nas VMs em que você aplica uma política de posicionamento compacto:Se uma zona tiver capacidade disponível, uma política de posicionamento compacto com um valor
max-distance
mais alto (como3
) talvez faça com que as VMs sejam colocadas mais perto umas das outras.Se uma zona não tiver capacidade, uma política de posicionamento compacto com um valor
max-distance
menor (como1
) aumentará a probabilidade de falha ao aplicar a política a uma ou mais das VMs.
VM_COUNT
: o número exato de VMs a que você pode aplicar a política de posicionamento compacto. O valor precisa estar entre1
e o número máximo de VMs a que é possível aplicar a política de posicionamento com base no valorMAX_DISTANCE
especificado.
Aplicar políticas de posicionamento compacto
É possível aplicar uma política de posicionamento compacto a uma VM existente ou ao criar VMs, modelos de instância, MIGs ou reservas de VMs.
Para criar um recurso do Compute Engine que especifique uma política de posicionamento compacto, selecione um dos seguintes métodos:
- Aplicar a política de posicionamento compacto a uma VM existente.
- Criar uma VM que especifique uma política de posicionamento compacto.
- Criar VMs em massa que especifiquem uma política de posicionamento compacto.
- Criar um modelo de instância que especifique uma política de posicionamento compacto.
- Aplicar uma política de posicionamento compacto às VMs em um MIG.
Se você quiser especificar uma política de posicionamento compacto ao criar uma reserva de projeto único especificando as propriedades diretamente, consulte Criar uma reserva para um único projeto.
Depois que uma política de posicionamento compacto for aplicada a uma VM, será possível verificar o local físico de uma VM em relação a outras VMs que especificam a mesma política.
Aplicar uma política de posicionamento compacto a uma VM existente
É possível aplicar uma política de posicionamento compacto a uma VM existente usando a gcloud CLI e a API Compute Engine.
Antes de aplicar uma política de posicionamento compacto a uma VM existente, verifique o seguinte:
A VM e a política de posicionamento compacto estão localizadas no mesmo projeto.
A VM está localizada na região em que a política de posicionamento compacto está.
A VM especifica uma política de manutenção do host e série de máquina compatível.
Caso contrário, a aplicação da política de posicionamento compacto a uma VM existente vai falhar.
gcloud
Para aplicar uma política de posicionamento compacto a uma VM existente, use o
comando gcloud compute instances add-resource-policies
com o flag --resource-policies
.
gcloud compute instances add-resource-policies VM_NAME \
--project=PROJECT_ID \
--resource-policies=POLICY_NAME \
--zone=ZONE
Substitua:
VM_NAME
: o nome de uma VM existente.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto e a VM estão localizadas.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que a VM está localizada.
REST
Para aplicar uma política de posicionamento compacto a uma VM existente, faça uma solicitação POST
ao
método instances.addResourcePolicies
com o campo resourcePolicies
.
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á, que precisa estar dentro da região onde a política de posicionamento compacto 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.
Criar uma VM que especifique uma política de posicionamento compacto.
É possível criar uma VM que especifique uma política de posicionamento compacto existente usando a gcloud CLI e a API Compute Engine.
gcloud
Para criar uma VM que especifique uma política de posicionamento compacto, use o
comando gcloud compute instances create
com o flag --resource-policies
.
Por exemplo, para criar uma VM que especifique um tipo de máquina c2d-standard-2
,
execute o seguinte comando:
gcloud compute instances create VM_NAME \
--machine-type=c2d-standard-2 \
--maintenance-policy=MAINTENANCE_POLICY \
--project=PROJECT_ID \
--resource-policies=POLICY_NAME \
--zone=ZONE
Substitua:
VM_NAME
: o nome da VM a ser criada.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que a VM será criada. Só é possível criar uma VM em uma zona que esteja dentro da região da política de posicionamento compacto especificada.
REST
Para criar uma VM que especifique uma política de posicionamento compacto, faça uma solicitação POST
para o
método instances.insert
com o campo resourcePolicies
.
Por exemplo, para criar uma VM que especifique um tipo de máquina c2d-standard-2
, faça a seguinte solicitação POST
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "zones/ZONE/machineTypes/c2d-standard-2",
"name": "VM_NAME",
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
Substitua:
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 criar uma VM em uma zona que esteja dentro da região da política de posicionamento compacto especificada.VM_NAME
: o nome da VM a ser criada.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 especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.
Para mais informações sobre as opções de configuração e os papéis do IAM para criar uma VM, consulte Criar e iniciar uma instância de VM.
Criar VMs em massa que especifiquem uma política de posicionamento compacto
É possível criar VMs em massa que especifiquem uma política de posicionamento compacto existente usando a gcloud CLI e a API Compute Engine.
gcloud
Para criar VMs em massa que especifiquem uma política de posicionamento compacto, use o
comando gcloud compute instances bulk create
com o flag --resource-policies
.
Por exemplo, para criar VMs em massa que especifiquem um tipo de máquina c2d-standard-2
e a mesma política de posicionamento compacto, execute o seguinte
comando:
gcloud compute instances bulk create \
--async \
--count=COUNT \
--machine-type=c2d-standard-2 \
--maintenance-policy=MAINTENANCE_POLICY \
--name-pattern=NAME_PATTERN \
--project=PROJECT_ID \
--resource-policies=POLICY_NAME \
--zone=ZONE
Substitua:
COUNT
: o número de VMs a serem criadas.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.NAME_PATTERN
: o padrão de nome das VMs a serem criadas. Use o caractere hash (#
) para substituí-lo por uma sequência de números. Por exemplo, especificarvm-#
cria VMs com nomesvm-1
,vm-2
e assim por diante, até o número de VMs especificado emCOUNT
.PROJECT_ID
: o ID do projeto em que a política de posicionamento compacto está localizada.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.ZONE
: a zona em que as VMs em massa serão criadas. Só é possível criar VMs em zonas que estejam dentro da região da política de posicionamento compacto que você especificar.
REST
Para criar VMs em massa que especifiquem uma política de posicionamento compacto, crie um POST
para o
método instances.bulkInsert
com o campo resourcePolicies
.
Por exemplo, para criar VMs em massa que especifiquem um tipo de máquina c2d-standard-2
e a mesma política de posicionamento compacto, faça a seguinte solicitação POST
:
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
"count": "COUNT",
"machineType": "zones/ZONE/machineTypes/c2d-standard-2",
"namePattern": "NAME_PATTERN",
"instanceProperties": {
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
}
Substitua:
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 e onde o tipo de máquina está localizado. Só é possível criar VMs em zonas que estejam dentro da região da política de posicionamento compacto que você especificar.COUNT
: o número de VMs a serem criadas.NAME_PATTERN
: o padrão de nome das VMs a serem criadas. Use o caractere hash (#
) para substituí-lo por uma sequência de números. Por exemplo, especificarvm-#
cria VMs com nomesvm-1
,vm-2
e assim por diante, até o número de VMs especificado emCOUNT
.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 especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.
Para mais informações sobre as opções de configuração ou os papéis do IAM para criar VMs em massa, consulte Criar VMs em massa.
Criar um modelo de instância que especifique uma política de posicionamento compacto
É possível criar um modelo de instância que especifique uma política de posicionamento compacto existente usando a gcloud CLI e a API Compute Engine.
Depois de criar um modelo de instância, use-o para fazer o seguinte:
gcloud
Para criar um modelo de instância que especifique uma política de posicionamento compacto,
use o
comando gcloud compute instance-templates create
com o flag --resource-policies
.
Por exemplo, para criar um modelo de instância que especifique um
tipo de máquina c2d-standard-2
e uma política de posicionamento compacto existente, execute
o seguinte comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=c2d-standard-2 \
--maintenance-policy=MAINTENANCE_POLICY \
--project=PROJECT_ID \
--resource-policies=POLICY_NAME
Substitua:
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MAINTENANCE_POLICY
: a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.PROJECT_ID
: o ID do projeto em que está localizada a política de posicionamento compacto que você quer aplicar ao modelo de instância.POLICY_NAME
: o nome de uma política de posicionamento compacto existente.
REST
Para criar um modelo de instância que especifique uma política de posicionamento compacto,
faça uma solicitação POST
para o
método instanceTemplates.insert
.
No corpo da solicitação, especifique o campo resourcePolicies
.
Por exemplo, para criar um modelo de instância que especifique um
tipo de máquina c2d-standard-2
e uma política de posicionamento compacto existente, execute
o seguinte comando POST
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"machineType": "zones/ZONE/machineTypes/c2d-standard-2",
"properties": {
"resourcePolicies": {
"POLICY_NAME"
},
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
}
Substitua:
PROJECT_ID
: o ID do projeto em que está localizada a política de posicionamento compacto que você quer aplicar ao modelo de instância.ZONE
: a zona em que o tipo de máquina está localizado.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.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 especificada usar um valormax-distance
de1
ou2
, você só poderá especificarTERMINATE
. Caso contrário, é possível especificarMIGRATE
ouTERMINATE
.
Para saber mais sobre as opções de configuração para criar um modelo de instância, consulte Criar modelos de instância.
Aplicar uma política de posicionamento compacto às 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:
Criar um MIG que especifique a mesma política de posicionamento compacto.
Aplicar a política de posicionamento compacto a um MIG existente.
Se você quiser aplicar uma política de posicionamento compacto a um MIG, é recomendado criar ou aplicar a política a um MIG regional com a forma de distribuição qualquer zona única. Dessa forma, sempre que um MIG regional precisar ser escalonado horizontalmente criando VMs, ele selecionará a zona em que as VMs serão criadas com base nas suas reservas, cotas e requisitos de hardware.
Criar um MIG que especifique uma política de posicionamento compacto
É possível criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto usando a gcloud CLI e a API Compute Engine.
gcloud
Para criar um MIG utilizando um modelo de instância que especifique uma política de posicionamento compacto, utilize o comando gcloud compute instance-groups managed create
com o flag --template
.
Por exemplo, para criar um MIG regional com formato de distribuição de qualquer zona única, execute o seguinte comando:
gcloud compute instance-groups managed create MIG_NAME \
--project=PROJECT_ID \
--region=REGION \
--size=SIZE \
--target-distribution-shape=any-single-zone \
--template=INSTANCE_TEMPLATE_NAME
Substitua:
MIG_NAME
: o nome do MIG que será criado.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 de posicionamento estão localizados.REGION
: a região em que o MIG será criado, que precisa corresponder à região em que a política de posicionamento compacto está localizada.SIZE
: o tamanho do MIG.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente que especifica uma política de posicionamento compacto.
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
aos métodos
instanceGroupManagers.insert
ou
regionInstanceGroupManagers.insert
com o campo instanceTemplate
definido como o nome do modelo
existente.
Por exemplo, para criar um MIG regional com propriedades de VM padrão e o
formato de distribuição em qualquer zona única, faça a seguinte solicitação POST
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"name": "MIG_NAME",
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"targetSize": SIZE
}
Substitua:
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 de posicionamento estão localizados.REGION
: a região em que o MIG será criado, que precisa corresponder à região em que a política de posicionamento compacto está localizada.MIG_NAME
: o nome do MIG que será criado.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente que especifica uma política de posicionamento compacto.SIZE
: o tamanho do MIG.
Para mais informações sobre as opções de configuração e os papéis do IAM para criar MIGs, consulte Cenários básicos para a criação de MIGs.
Aplicar uma política posicionamento compacto a um MIG existente
É possível aplicar uma política de posicionamento compacto a um MIG existente usando um modelo de instância que especifique a mesma política de posicionamento usando a gcloud CLI e a API Compute Engine.
gcloud
Para atualizar um MIG para utilizar 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
com o flag --version=template
.
Por exemplo, para atualizar um MIG regional 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 \
--project=PROJECT_ID \
--region=REGION \
--type=proactive \
--version=template=INSTANCE_TEMPLATE_NAME
Substitua:
MIG_NAME
: o nome de um MIG existente.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.REGION
: a região em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG que esteja na mesma região.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente que especifica uma política de posicionamento compacto.
REST
Para atualizar um MIG para utilizar 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 existentes no MIG, faça uma solicitação PATCH
ao
instanceGroupManagers.insert
ou
regionInstanceGroupManagers.insert
com o campo instanceTemplate
.
Por exemplo, para atualizar um MIG regional para utilizar um modelo de instância que
especifique uma política de posicionamento compacto e substituir as VMs existentes do
MIG por novas VMs que especifiquem as propriedades do modelo, faça o seguinte:
PATCH
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
"updatePolicy": {
"type": "PROACTIVE"
}
}
Substitua:
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.REGION
: a região em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG que esteja na mesma região.MIG_NAME
: o nome de um MIG existente.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância existente que especifica uma política de posicionamento compacto.
Para mais informações sobre as opções de configuração e os papéis do IAM para atualizar as VMs em um MIG, consulte Atualizar e aplicar novas configurações às 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.
É possível verificar a localização física de uma VM que especifica uma política de posicionamento usando a gcloud CLI e a API Compute Engine.
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)" \
--project=PROJECT_ID \
--zone=ZONE
Substitua:
VM_NAME
: o nome de uma VM existente.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
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 campo PHYSICAL_HOST
:
/CCCCCCC/xxxxxx/xxxx
: as duas VMs são colocadas no mesmo cluster, o que equivale a um valormax-distance
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 valormax-distance
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.
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étodo instances.get
.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
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.
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 campo physicalHost
:
/CCCCCCC/xxxxxx/xxxx
: as duas VMs são colocadas no mesmo cluster, o que equivale a um valormax-distance
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 valormax-distance
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.
A seguir
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: