Este documento descreve como aplicar seletivamente atualizações de configuração às instâncias de máquinas virtuais (VMs) num grupo de instâncias geridas (GIG).
O Compute Engine mantém as VMs num GIG com base nos componentes de configuração que usa: modelo de instância, configuração opcional de todas as instâncias e configuração opcional com estado.
Sempre que atualiza a configuração de VM de um GIG alterando esses componentes, o Compute Engine aplica automaticamente a configuração atualizada às novas VMs que são adicionadas ao grupo.
Para aplicar uma configuração atualizada a VMs existentes, pode configurar uma atualização seletiva, também conhecida como um tipo de atualização "oportunista". Este tipo de atualização oferece as seguintes vantagens:
- Pode selecionar as VMs que quer atualizar.
- Pode controlar a hora e a sequência das atualizações.
- Pode usar a CLI gcloud ou a REST para atualizar todas as VMs imediatamente.
Em alternativa, se quiser automatizar a implementação de uma nova configuração em todas as VMs ou num subconjunto aleatório das VMs num GIG, consulte o artigo Aplique automaticamente atualizações de configuração de VMs num GIG. Para ajudar a decidir, consulte os métodos para aplicar uma nova configuração a VMs existentes.
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Aplique a configuração atualizada às VMs selecionadas
Certifique-se de que o tipo de política de atualização do seu grupo está definido como "oportunista" para impedir que o MIG aplique automaticamente uma nova configuração de VM às VMs existentes. Para mais informações, consulte o artigo Verifique o tipo de política de atualização do seu grupo.
Em seguida, use a CLI gcloud ou a API REST para atualizar a configuração do MIG e aplicar a configuração mais recente a VMs específicas no grupo ou a todas as VMs no grupo.
gcloud
Para configurar um novo modelo de instância para o seu grupo, pode usar o comando
set-instance-template
.gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE
Aplique a configuração a VMs específicas
Para aplicar a configuração atualizada a VMs específicas, use o comando
update-instances
com a flag--instances
.gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAMES \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Aplique a configuração a todas as VMs
Para aplicar a configuração atualizada a todas as VMs, use o comando
update-instances
com a flag--all-instances
.gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --all-instances \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome do MIGINSTANCE_TEMPLATE
: novo modelo de instânciaINSTANCE_NAMES
: uma lista de VMs às quais aplicar o modeloDISRUPTION_LEVEL
: o nível de interrupção mínimo ou máximo:none
,refresh
,restart
oureplace
- A ação mínima predefinida é
none
- A ação mais disruptiva permitida predefinida é
replace
- A ação mínima predefinida é
REST
Para configurar um novo modelo de instância para o seu grupo, chame o método
patch
num GIG zonal ou regional e atualize o campoversions.instanceTemplate
. Para evitar a implementação automática do novo modelo em todas as VMs do grupo, defina o campoupdatePolicy.type
comoOPPORTUNISTIC
.PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "OPPORTUNISTIC" }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
Aplique a configuração a VMs específicas
Para aplicar a configuração atualizada a VMs específicas, chame o método
applyUpdatesToInstances
para o seu MIG zonal ou regional e especifique uma lista de VMs no pedido.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Aplique a configuração a todas as VMs
Para aplicar a configuração atualizada a todas as VMs existentes, defina o campo
allInstances
comotrue
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "allInstances": true, "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome do grupoNEW_TEMPLATE
: o nome do novo modeloZONE
: a zona de uma instância a atualizarINSTANCE_NAME_1
eINSTANCE_NAME_2
: os nomes das VMs a atualizarDISRUPTION_LEVEL
: o nível de interrupção mínimo ou máximo:NONE
,REFRESH
,RESTART
ouREPLACE
- O valor predefinido de
minimalAction
éNONE
. - O valor predefinido de
mostDisruptiveAllowedAction
éREPLACE
.
- O valor predefinido de
Semelhante a outros métodos de grupos de instâncias geridos,
applyUpdatesToInstances
baseia-se na intenção, o que significa que devolve uma resposta de operação. A operação pode demorar algum tempo a ser concluída.Depois de fazer um pedido, pode verificar o estado para confirmar que a atualização está concluída.
Controle o nível de interrupção durante as atualizações seletivas
Consoante a natureza de uma atualização, esta pode interromper o estado de uma instância. Por exemplo, alterar o disco de arranque de uma instância requer a substituição da instância. Pode controlar o nível de interrupção durante uma atualização seletiva definindo as seguintes opções:
Ação mínima: use esta opção para minimizar a interrupção o máximo possível ou para aplicar uma ação mais disruptiva do que o necessário.
- Para limitar a interrupção o máximo possível, defina a ação mínima como
NONE
. Se a atualização exigir uma ação mais disruptiva, o Compute Engine executa a ação necessária para executar a atualização. - Para aplicar uma ação mais disruptiva do que o estritamente necessário, defina a ação mínima como
RESTART
ouREPLACE
. Por exemplo, o Compute Engine não precisa de reiniciar uma VM para alterar os respetivos metadados. No entanto, se a sua aplicação ler os metadados da instância apenas quando uma VM é reiniciada, pode definir a ação mínima comoRESTART
para detetar alterações aos metadados.
- Para limitar a interrupção o máximo possível, defina a ação mínima como
Ação permitida mais disruptiva: use esta opção para impedir uma atualização se exigir mais interrupções do que pode suportar. Se a sua atualização exigir uma ação mais disruptiva do que a definida com esta flag, o pedido de atualização falha. Por exemplo, se definir a ação permitida mais disruptiva como
RESTART
, então uma tentativa de atualizar a imagem do disco de arranque falha porque essa atualização requer a recriação da instância, uma ação mais disruptiva do que um reinício.
Quando atualiza VMs selecionadas, ambas as opções aceitam os seguintes valores:
Valor Descrição Que propriedades de instância podem ser atualizadas? NONE
Não interrompa a instância de todo. Nenhum REFRESH
Não pare a instância. Discos adicionais, metadados de instâncias, etiquetas e tags RESTART
Pare a instância e inicie-a novamente. Discos adicionais, metadados de instâncias, etiquetas, etiquetas, tipo de máquina REPLACE
Elimine a instância e crie-a novamente. Todas as propriedades da instância armazenadas no modelo de instância ou na configuração por instância A ação permitida mais disruptiva não pode ser menos disruptiva do que a ação mínima.
Quando atualiza VMs seletivamente, aplicam-se as seguintes predefinições:
- A ação mínima predefinida é
NONE
, que limita a interrupção o máximo possível. - A ação mais disruptiva permitida predefinida é
REPLACE
. Se não conseguir tolerar essa interrupção, defina a ação permitida mais disruptiva para ser menos disruptiva.
O que se segue?
- Saiba como ver informações sobre GIGs e VMs geridas.
- Saiba como criar modelos de instâncias.
- Saiba como usar famílias de imagens e uma substituição contínua para atualizar a imagem do SO em todas as VMs num MIG.
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 2025-10-19 UTC.
-