Reduza a latência usando políticas de posicionamento compacto


Este documento descreve 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. Para saber mais sobre políticas de posicionamento, incluindo séries de máquinas suportadas, restrições e preços, consulte Visão geral das políticas de posicionamento .

Uma política de posicionamento compacto especifica que suas VMs devem ser colocadas fisicamente mais próximas umas das outras. Isso pode ajudar a melhorar o desempenho e reduzir a latência da rede entre suas VMs quando, por exemplo, você executa cargas de trabalho de computação de alto desempenho (HPC), aprendizado de máquina (ML) ou servidor de banco de dados.

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Funções obrigatórias

Para obter as permissões necessárias para criar 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 seu projeto:

Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .

Estas funções predefinidas contêm as permissões necessárias para criar e aplicar uma política de posicionamento compacto às VMs. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :

Permissões necessárias

As seguintes permissões são necessárias para criar e aplicar uma política de posicionamento compacto a VMs:

  • Para criar políticas de posicionamento: compute.resourcePolicies.create no projeto
  • Para aplicar uma política de posicionamento a VMs existentes: 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
    • 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 legada à 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 ao usar uma rede legada: 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 ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Para definir metadados de instância de VM para a VM: compute.instances.setMetadata no projeto
    • Para definir tags para a VM: compute.instances.setTags na VM
    • Para definir rótulos 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 somente leitura ou leitura-gravação: compute.disks.use no disco
    • Para anexar um disco existente 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 visualizar os detalhes de uma VM: compute.instances.get no projeto

Você também poderá obter essas permissõ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 você quiser aplicar uma política de posicionamento compacto a uma VM diferente de N2 ou N2D, recomendamos especificar um valor de distância máximo .

  • Você só pode aplicar políticas de posicionamento compacto a VMs A4 ou A3 Ultra implantadas usando os recursos fornecidos pelo Cluster Director. Para obter mais informações, consulte Cluster Director na documentação do AI Hypercomputer.

  • Por padrão, não é possível aplicar políticas de posicionamento compacto com um valor de distância máxima a VMs A3 Mega, A3 High ou A3 Edge. Para solicitar acesso a esse recurso, entre em contato com o gerente técnico de contas (TAM) designado ou com a equipe 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 VMs N2 ou N2D, crie a política usando o comando gcloud compute resource-policies create group-placement com a sinalização --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 VMs compatíveis, crie a política usando o comando gcloud beta compute resource-policies create group-placement com os sinalizadores --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 suas VMs. O valor deve estar entre 1 , que especifica colocar suas VMs no mesmo rack para obter a menor latência de rede possível, e 3 , que especifica colocar suas VMs em clusters adjacentes. Se quiser aplicar a política de posicionamento compacto a uma reserva ou a uma VM A4 ou A3 Ultra, não será possível especificar um valor de 1 .

    • REGION : a região na qual criar a política de posicionamento.

DESCANSAR

  • Para aplicar a política de posicionamento compacto a VMs N2 ou N2D, crie a política fazendo uma solicitação POST para o método resourcePolicies.insert . No corpo da solicitação, inclua o campo collocation e defina-o como COLLOCATED .

    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 você deseja criar a política de veiculação.

    • 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 VMs suportadas, crie a política fazendo uma solicitação POST para o método beta.resourcePolicies.insert . No corpo da solicitação, inclua o seguinte:

    • O campo collocation definido como COLLOCATED .

    • 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 você deseja criar a política de veiculação.

    • 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 suas VMs. O valor deve estar entre 1 , que especifica colocar suas VMs no mesmo rack para obter a menor latência de rede possível, e 3 , que especifica colocar suas VMs em clusters adjacentes. Se quiser aplicar a política de posicionamento compacto a uma reserva ou a uma VM A4 ou A3 Ultra, não será possível especificar um valor de 1 .

Aplicar uma política de posicionamento compacto

Você pode aplicar uma política de posicionamento compacto a uma VM ou MIG existente 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, você poderá verificar o local físico da VM em relação a outras VMs que especifiquem a mesma política de posicionamento.

Aplicar a política a uma VM existente

Antes de aplicar uma política de posicionamento compacto a uma VM existente, certifique-se do seguinte:

Caso contrário, a aplicação da política de posicionamento compacto à VM falhará. Se a VM já especifica uma política de posicionamento e você deseja substituí-la, consulte Substituir uma política de posicionamento em uma VM .

Para aplicar uma política de posicionamento compacto a uma VM existente, selecione uma das seguintes opções:

gcloud

  1. Pare a VM .

  2. Para aplicar uma política de posicionamento compacto a uma VM existente, use o comando gcloud compute instances add-resource-policies .

    gcloud compute instances add-resource-policies VM_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

    Substitua o seguinte:

    • VM_NAME : o nome de uma VM existente.

    • POLICY_NAME : o nome de uma política de posicionamento compacto existente.

    • ZONE : a zona onde a VM está localizada.

  3. Reinicie a VM .

DESCANSAR

  1. Pare a VM .

  2. Para aplicar uma política de posicionamento compacto a uma VM existente, faça uma solicitação POST para o método instances.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 o seguinte:

    • PROJECT_ID : o ID do projeto onde a política de posicionamento compacto e a VM estão localizadas.

    • ZONE : a zona onde a VM está localizada.

    • VM_NAME : o nome de uma VM existente.

    • REGION : a região onde está localizada a política de colocação compacta.

    • POLICY_NAME : o nome de uma política de posicionamento compacto existente.

  3. Reinicie a VM .

Aplicar a política ao criar uma VM

Só é possível criar uma VM que especifique uma política de posicionamento compacta na mesma região que a 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 compacta, use o comando gcloud compute instances create com os sinalizadores --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 o seguinte:

  • VM_NAME : o nome da VM a ser criada.

  • MACHINE_TYPE : um tipo de máquina compatível para políticas de posicionamento compacto.

  • MAINTENANCE_POLICY : a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

  • POLICY_NAME : o nome de uma política de posicionamento compacto existente.

  • ZONE : a zona na qual criar a VM.

DESCANSAR

Para criar uma VM que especifique uma política de posicionamento compacta, faça uma solicitação POST para o método instances.insert . No corpo da solicitação, inclua os campos onHostMaintenance e resourcePolicies .

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 o seguinte:

  • PROJECT_ID : o ID do projeto onde a política de posicionamento compacto está localizada.

  • ZONE : a zona onde criar a VM e onde o tipo de máquina está localizado. Você só pode 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 para políticas de posicionamento compacto.

  • IMAGE_PROJECT : o projeto de imagem que contém a imagem — por exemplo, debian-cloud . Para obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .

  • IMAGE : especifique um dos seguintes:

    • Uma versão específica da imagem do sistema operacional — por exemplo, debian-12-bookworm-v20240617 .

    • Uma família de imagens , que deve ser formatada como family/ IMAGE_FAMILY . Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificar family/debian-12 , a versão mais recente da família de imagens Debian 12 será usada. Para obter mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens .

  • REGION : a região onde está localizada a política de colocação compacta.

  • 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 valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

Para obter 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 compacta 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 compacta, use o gcloud compute instances bulk create com os sinalizadores --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 o seguinte:

  • COUNT : o número de VMs a serem criadas, que não pode ser maior que o número máximo suportado de VMs da política de posicionamento compacto especificada.

  • MACHINE_TYPE : um tipo de máquina compatível para políticas de posicionamento compacto.

  • MAINTENANCE_POLICY : a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

  • NAME_PATTERN : o padrão de nome para as VMs. Para substituir uma sequência de números em um nome de VM, use uma sequência de caracteres hash ( # ). Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes começando com vm-1 , vm-2 e continuando até o número de VMs especificado por COUNT .

  • POLICY_NAME : o nome de uma política de posicionamento compacto existente.

  • ZONE : a zona na qual criar as VMs em massa.

DESCANSAR

Para criar VMs em massa que especifiquem uma política de posicionamento compacto, faça uma solicitação POST para o método instances.bulkInsert . No corpo da solicitação, inclua os campos onHostMaintenance e resourcePolicies .

Por exemplo, para criar VMs em massa em uma única zona e especificar um padrão de nome para as VMs, faça uma solicitação POST da seguinte maneira:

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 a política de posicionamento compacto está localizada.

  • ZONE : a zona na qual criar as VMs em massa.

  • COUNT : o número de VMs a serem criadas, que não pode ser maior que o número máximo suportado 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 em um nome de VM, use uma sequência de caracteres hash ( # ). Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes começando com vm-1 , vm-2 e continuando até o número de VMs especificado por COUNT .

  • MACHINE_TYPE : um tipo de máquina compatível para políticas de posicionamento compacto.

  • IMAGE_PROJECT : o projeto de imagem que contém a imagem — por exemplo, debian-cloud . Para obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .

  • IMAGE : especifique um dos seguintes:

    • Uma versão específica da imagem do sistema operacional — por exemplo, debian-12-bookworm-v20240617 .

    • Uma família de imagens , que deve ser formatada como family/ IMAGE_FAMILY . Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificar family/debian-12 , a versão mais recente da família de imagens Debian 12 será usada. Para obter mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens .

  • REGION : a região onde está localizada a política de colocação compacta.

  • 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 valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

Para obter 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 quiser criar uma reserva sob demanda de projeto único que especifique uma política de veiculação compacta, você deverá criar uma reserva direcionada especificamente . Ao criar VMs para consumir a reserva, certifique-se do seguinte:

  • As VMs devem especificar a mesma política de posicionamento compacto aplicada à reserva.

  • As VMs devem direcionar especificamente a reserva para consumi-la. Para obter mais informações, consulte Consumir VMs 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:

Para criar uma reserva de projeto único com uma política de posicionamento compacta especificando propriedades diretamente, 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 gcloud compute reservations create com os --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 o seguinte:

  • RESERVATION_NAME : o nome da reserva.

  • MACHINE_TYPE : um tipo de máquina compatível para 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 pode ser maior que o número máximo suportado de VMs da política de posicionamento compacto especificada.

  • ZONE : a zona na qual reservar VMs. Você só pode reservar VMs em uma zona dentro da região da política de posicionamento compacto especificada.

DESCANSAR

Para criar uma reserva de projeto único com uma política de posicionamento compacta especificando propriedades diretamente, faça uma solicitação POST para o método reservations.insert . No corpo da solicitação, 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_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto onde a política de posicionamento compacto está localizada.

  • ZONE : a zona na qual reservar VMs. 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 onde está localizada a política de colocação compacta.

  • 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 pode ser maior que o número máximo suportado de VMs da política de posicionamento compacto especificada.

  • MACHINE_TYPE : um tipo de máquina compatível para políticas de posicionamento compacto.

Para obter mais informações sobre as opções de configuração para criar reservas de projeto único, consulte Criar uma reserva para um único projeto .

Aplicar a política ao criar um modelo de instância

Se desejar criar um modelo de instância regional, você deverá criar o modelo na mesma região que a 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 especifique uma política de posicionamento compacto, você poderá 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 gcloud compute instance-templates create com os sinalizadores --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 o seguinte:

  • INSTANCE_TEMPLATE_NAME : o nome do modelo de instância.

  • MACHINE_TYPE : um tipo de máquina compatível para políticas de posicionamento compacto.

  • MAINTENANCE_POLICY : a política de manutenção do host da VM. Se a política de posicionamento compacto especificada usar um valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

  • POLICY_NAME : o nome de uma política de posicionamento compacto existente.

DESCANSAR

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 e resourcePolicies .

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 o seguinte:

  • PROJECT_ID : o ID do projeto onde 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 obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .

  • IMAGE : especifique um dos seguintes:

    • Uma versão específica da imagem do sistema operacional — por exemplo, debian-12-bookworm-v20240617 .

    • Uma família de imagens , que deve ser formatada como family/ IMAGE_FAMILY . Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificar family/debian-12 , a versão mais recente da família de imagens Debian 12 será usada. Para obter 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 para 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 especificada usar um valor de distância máximo de 1 ou 2 ou se o tipo de máquina escolhido não oferecer suporte à migração em tempo real, você poderá especificar apenas TERMINATE . Caso contrário, você poderá especificar MIGRATE ou TERMINATE .

Para obter mais informações sobre as opções de configuração para criar um modelo de instância, consulte Criar modelos de instância .

Aplicar a política às VMs em um MIG

Depois de criar um modelo de instância que especifique uma política de posicionamento compacto, você poderá usar o modelo para fazer o seguinte:

Aplicar a política ao criar um MIG

Você só poderá criar VMs que especifiquem uma política de posicionamento compacta se as VMs estiverem localizadas na mesma região que a 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 compacta, use o comando gcloud compute instance-groups managed create .

Por exemplo, para criar um MIG zonal usando um modelo de instância global que especifica 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 o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG a ser criado.

  • 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 compacto.

  • ZONE : a zona na qual será criado o MIG, que deve estar dentro da região onde está localizada a política de colocação compacta.

DESCANSAR

Para criar um MIG usando 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:

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 o seguinte:

  • PROJECT_ID : o ID do projeto onde 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 na qual será criado o MIG, que deve estar dentro da região onde está localizada a política de colocação compacta.

  • INSTANCE_GROUP_NAME : o nome do MIG a ser criado.

  • INSTANCE_TEMPLATE_NAME : o nome de um modelo de instância global existente que especifica uma política de posicionamento compacto.

  • SIZE : o tamanho do MIG.

Para obter mais informações sobre as opções de configuração para criar MIGs, consulte Cenários básicos para criação de MIGs .

Aplicar a política a um MIG existente

Você só poderá aplicar uma política de posicionamento compacto a um MIG existente se o MIG estiver localizado na mesma região que a política de posicionamento ou, para MIGs zonais, em uma zona dentro da mesma região que a política de posicionamento.

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 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 especifique uma política de posicionamento compacto e substituir as VMs existentes 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 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 compacto.

  • ZONE : a zona onde o MIG está localizado. Você só pode aplicar a política de posicionamento compacto a um MIG localizado na mesma região que a política de posicionamento.

DESCANSAR

Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacta e aplicar automaticamente as propriedades do modelo e da política de posicionamento às VMs existentes no MIG, faça uma solicitação PATCH para um dos seguintes métodos:

Por exemplo, para atualizar um MIG zonal para usar um modelo de instância global 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 a seguinte solicitação 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 compacto e o modelo de instância que especifica a política de posicionamento estão localizados.

  • ZONE : a zona onde o MIG está localizado. Você só pode aplicar a política de posicionamento compacto 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 compacto.

Para obter mais informações sobre as opções de configuração para atualizar as VMs em um MIG, consulte Atualizar e aplicar novas configurações às VMs em um MIG .

Verifique a localização física de uma VM

Depois de aplicar uma política de posicionamento compacto a uma VM, você poderá visualizar a localização física da VM em relação a outras VMs. Esta comparação é limitada a VMs localizadas no seu projeto e que especificam a mesma política de posicionamento compacto. Visualizar a localização física de uma VM ajuda você a fazer o seguinte:

  • Confirme se a política foi aplicada com sucesso.

  • Identifique quais VMs estão mais próximas umas das outras.

Para visualizar a localização física de uma VM em relação a outras VMs que especificam a mesma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para visualizar a localização física de uma VM que especifica uma política de posicionamento compacto, use o comando gcloud compute instances describe com a sinalização --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 seguinte:

  • VM_NAME : o nome de uma VM existente que especifica uma política de posicionamento compacto.

  • ZONE : a zona onde a VM está localizada.

A saída é semelhante à 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. Cada uma dessas partes representa o cluster, o rack e o host onde a VM está localizada.

Ao comparar a posição de duas VMs que usam a mesma política de posicionamento compacto em seu projeto, quanto mais partes do campo PHYSICAL_HOST as VMs compartilharem, mais próximas elas estarão fisicamente localizadas uma da outra. Por exemplo, suponha que duas VMs especifiquem 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 valor de distância máximo de 2 . VMs colocadas no mesmo cluster apresentam 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áximo de 1 . As VMs colocadas no mesmo rack apresentam 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 ao máximo a latência da rede.

DESCANSAR

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 o seguinte:

  • PROJECT_ID : o ID do projeto onde a VM está localizada.

  • ZONE : a zona onde a VM está localizada.

  • VM_NAME : o nome de uma VM existente que especifica uma política de posicionamento compacto.

A saída é semelhante à 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. Cada uma dessas partes representa o cluster, o rack e o host onde a VM está localizada.

Ao comparar a posição de duas VMs que usam a mesma política de posicionamento compacto em seu projeto, quanto mais partes do campo physicalHost as VMs compartilharem, mais próximas elas estarão fisicamente localizadas uma da outra. Por exemplo, suponha que duas VMs especifiquem um dos seguintes valores de amostra para o physicalHost :

  • /CCCCCCC/ xxxxxx/xxxx : as duas VMs são colocadas no mesmo cluster, o que equivale a um valor de distância máximo de 2 . VMs colocadas no mesmo cluster apresentam 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áximo de 1 . As VMs colocadas no mesmo rack apresentam 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 ao máximo a latência da rede.

O que vem a seguir?