Este documento descreve como melhorar a confiabilidade das instâncias de máquina virtual (VM) criando e aplicando políticas de posicionamento distribuído a elas.
Uma política de posicionamento difundida especifica que as VMs precisam ser distribuídas em diferentes domínios de disponibilidade. Essa distribuição ajuda a mitigar interrupções específicas do local, como erros de hardware, e é útil ao executar cargas de trabalho distribuídas, replicadas e em grande escala, como o Hadoop Distributed File System (HDFS), Cassandra ou Kafka.
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.
-
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 um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para criar um grupo gerenciado de instâncias (MIG):
compute.instanceGroupManagers.create
no projeto POLICY_NAME
: o nome da política de posicionamento distribuído.DOMAIN_COUNT
: o número distinto de domínios de disponibilidade em que as VMs são colocadas. O valor precisa estar entre1
e8
.REGION
: a região em que a política de posicionamento será criada.PROJECT_ID
: o ID do projeto em que a política de posicionamento será criada.REGION
: a região em que a política de posicionamento será criada.POLICY_NAME
: o nome da política de posicionamento distribuído.DOMAIN_COUNT
: o número distinto de domínios de disponibilidade em que as VMs são colocadas. O valor precisa estar entre1
e8
.- 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 um modelo de instância.
- Aplique a política às VMs em um MIG.
Se a política de posicionamento distribuído especificar vários domínios de disponibilidade, é possível aplicar a política a uma VM sem interromper a VM. No entanto, talvez a VM precise ser realocada para um domínio de disponibilidade diferente. Durante esse processo, o Compute Engine interrompe ou migra em tempo real a VM com base na política de manutenção do host.
A VM e a política de posicionamento de propagação 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.VM_NAME
: o nome de uma VM existente.POLICY_NAME
: o nome de uma política de posicionamento expandida.ZONE
: a zona em que a VM está localizada.PROJECT_ID
: o ID do projeto em que a política de posicionamento distribuído 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 distribuído está localizada.POLICY_NAME
: o nome de uma política de posicionamento expandida.VM_NAME
: o nome da VM a ser criada.MACHINE_TYPE
: o tipo de máquina da VM.POLICY_NAME
: o nome de uma política de posicionamento expandida.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 distribuído 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 distribuído.VM_NAME
: o nome da VM a ser criada.MACHINE_TYPE
: o tipo de máquina da VM.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 distribuído está localizada.POLICY_NAME
: o nome de uma política de posicionamento expandida.Só é possível criar VMs em massa que especificam uma política de posicionamento distribuído na mesma região da política de posicionamento.
Ao criar VMs em massa com uma política de posicionamento distribuída, é possível especificar o domínio de disponibilidade em que as VMs serão criadas. Evite criar todas as suas VMs em um só domínio. Caso contrário, você não reduz o risco de um único erro de hardware que afeta todas as VMs.
COUNT
: o número de VMs a serem criadas.MACHINE_TYPE
: o tipo de máquina das VMs.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 expandida.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 distribuído está localizada.ZONE
: a zona em que as VMs em massa serão criadas.COUNT
: o número de VMs a serem criadas.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
.MACHINE_TYPE
: o tipo de máquina das VMs.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.
POLICY_NAME
: o nome de uma política de posicionamento expandida.Se você quiser criar um modelo de instância regional, crie o modelo na mesma região da política de posicionamento distribuído. Caso contrário, a criação do modelo de instância falhará.
Ao criar um modelo de instância, é possível especificar o domínio de disponibilidade em que as VMs serão criadas. Evite criar todas as suas VMs em um só domínio. Caso contrário, você não reduz o risco de um único erro de hardware que afeta todas as VMs.
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina das VMs criadas usando o modelo de instância.POLICY_NAME
: o nome de uma política de posicionamento expandida.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 distribuído 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
: o tipo de máquina das VMs criadas usando o modelo de instância.POLICY_NAME
: o nome de uma política de posicionamento expandida.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 expandida.ZONE
: a zona em que o MIG será criado, precisa estar na região em que a política de posicionamento distribuído 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 distribuído 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 distribuído está localizada.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 expandida.INSTANCE_GROUP_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 expandida.ZONE
: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento distribuído 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 usado para criar um MIG atual, a política de posicionamento distribuído e o modelo de instância que especifica a política de posicionamento distribuído.ZONE
: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento distribuído a um MIG localizado na mesma região da política de posicionamento.INSTANCE_GROUP_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 expandida.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:
Saiba mais sobre o processo de migração em tempo real durante eventos de manutenção.
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 distribuído às VMs, peça ao administrador para conceder a você o papel de Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1
) 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.Esse papel predefinido contém as permissões necessárias para criar e aplicar uma política de posicionamento expandida à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 expandida às VMs:
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar uma política de canais de distribuição
A menos que você queira testar a aplicação da política de posicionamento distribuído às suas VMs, o Google Cloud recomenda criar políticas de posicionamento distribuído com dois ou mais domínios de disponibilidade. Isso reduz o risco de todas as VMs serem afetadas por um único erro de hardware. Para mais informações, consulte Sobre as políticas de posicionamento distribuído.
Para criar uma política de posicionamento distribuído, selecione uma das seguintes opções:
gcloud
Para criar uma política de posicionamento expandida, use o comando
gcloud compute resource-policies create group-placement
com a sinalização--availability-domain-count
.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGION
Substitua:
REST
Para criar uma política de posicionamento expandida, faça uma solicitação
POST
para o métodoresourcePolicies.insert
. No corpo da solicitação, inclua o campoavailabilityDomainCount
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "availabilityDomainCount": DOMAIN_COUNT } }
Substitua:
Aplicar uma política de canais de distribuição
É possível aplicar uma política de posicionamento expandida a uma VM ou MIG ou ao criar VMs, modelos de instâncias ou MIGs.
Para aplicar uma política de posicionamento espalhado a um recurso do Compute Engine, selecione um dos seguintes métodos:
Depois de aplicar uma política de posicionamento distribuída a uma VM, é possível verificar o domínio de disponibilidade em que a VM está localizada conferindo os detalhes da VM e o valor do campo
availabilityDomain
.Aplicar a política a uma VM
Antes de aplicar uma política de posicionamento distribuído a uma VM, considere o seguinte:
Se você quiser especificar o domínio de disponibilidade em que vai colocar a VM, aplique a política de posicionamento à VM atualizando as propriedades dela. Ao atualizar as propriedades da VM, inclua os campos
resourcePolicies
escheduling.availabilityDomain
.Para aplicar uma política de posicionamento distribuída a uma VM, selecione uma das seguintes opções:
gcloud
Para aplicar uma política de posicionamento distribuído 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:
REST
Para aplicar uma política de posicionamento distribuído 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:
Aplicar a política ao criar uma VM
Só é possível criar uma VM que especifique uma política de posicionamento distribuído na mesma região da política de posicionamento.
Para criar uma VM que especifique uma política de posicionamento distribuído, selecione uma das seguintes opções:
gcloud
Para criar uma VM que especifique uma política de posicionamento expandida, use o comando
gcloud compute instances create
com a sinalização--resource-policies
.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que a VM será criada, inclua a flag
--availability-domain
.gcloud compute instances create VM_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade onde colocar a VM. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento distribuído. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.REST
Para criar uma VM que especifique uma política de posicionamento distribuído, faça uma solicitação
POST
ao métodoinstances.insert
. No corpo da solicitação, inclua o camporesourcePolicies
.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" ] }
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que a VM será criada, inclua a flag
availabilityDomain
no corpo da solicitação.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": { "availabilityDomain": DOMAIN_NUMBER } }
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade onde colocar a VM. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento distribuído. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.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
Antes de criar VMs em massa que especificam uma política de posicionamento distribuído, verifique o seguinte:
Para criar VMs em massa que especifiquem uma política de posicionamento distribuída, selecione uma das seguintes opções:
gcloud
Para criar VMs em massa que especifiquem uma política de posicionamento distribuído, use o comando
gcloud compute instances bulk create
com o flag--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 \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que as VMs serão criadas em massa, inclua a flag
--availability-domain
.gcloud compute instances bulk create \ --availability-domain=DOMAIN_NUMBER \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade onde colocar a VM. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento distribuído. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.REST
Para criar VMs em massa que especifiquem uma política de posicionamento distribuído, crie um
POST
para o métodoinstances.bulkInsert
. No corpo da solicitação, inclua o camporesourcePolicies
.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": [ "POLICY_NAME" ] } }
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que as VMs serão criadas em massa, inclua a flag
availabilityDomain
no corpo da solicitação.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": [ "POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } } }
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade onde colocar a VM. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento distribuído. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.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 um modelo de instância
Antes de criar um modelo de instância que especifique uma política de posicionamento distribuído, verifique o seguinte:
Depois de criar um modelo de instância que especifica uma política de posicionamento distribuído, é possível usar o modelo para fazer o seguinte:
Para criar um modelo de instância que especifique uma política de posicionamento distribuído, selecione uma das seguintes opções:
gcloud
Para criar um modelo de instância que especifique uma política de posicionamento distribuído, use o comando
gcloud compute instance-templates create
com a flag--resource-policies
.Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento distribuído, execute o seguinte comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que as VMs serão criadas, inclua a flag
--availability-domain
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade em que você quer criar as VMs. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.REST
Para criar um modelo de instância que especifique uma política de posicionamento distribuído, faça uma solicitação
POST
para um dos seguintes métodos:No corpo da solicitação, especifique o campo
resourcePolicies
.Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento distribuído, 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" ] } }
Substitua:
Opcionalmente, para especificar o domínio de disponibilidade em que as VMs serão criadas, inclua a flag
availabilityDomain
no corpo da solicitação.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": { "availabilityDomain": DOMAIN_NUMBER } } }
Substitua
DOMAIN_NUMBER
pelo número do domínio de disponibilidade em que você quer criar as VMs. O valor precisa estar entre1
e o número de domínios especificados na política de posicionamento. Para verificar o número de domínios em uma política de posicionamento distribuído, confira os detalhes da política de posicionamento.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 especifica uma política de posicionamento expandida, é 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 distribuído 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 distribuído, selecione uma das seguintes opções:
gcloud
Para criar um MIG usando um modelo de instância que especifica uma política de posicionamento distribuído, 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 distribuído, 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 distribuído 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 distribuído, 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 distribuído 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 expandida, 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 expandida e substituir as VMs atuais do MIG por novas VMs que especifiquem as propriedades do modelo, execute o comando abaixo:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_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 distribuído 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 usar um modelo de instância global que especifique uma política de posicionamento expandida e substituir as VMs atuais do MIG por novas VMs que especifiquem 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/INSTANCE_GROUP_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.
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.
-