Este documento descreve como aplicar seletivamente atualizações de configuração às instâncias de máquina virtual (VM) em um grupo de instâncias gerenciadas (MIG).
O Compute Engine mantém as VMs em um MIG com base nos componentes de configuração usados: modelo de instância, configuração opcional de todas as instâncias e configuração com estado opcional.
Sempre que você atualiza a configuração da VM de um MIG alterando esses componentes, o Compute Engine aplica automaticamente sua configuração atualizada a novas VMs adicionadas ao grupo.
Para aplicar uma configuração atualizada às VMs, defina uma atualização seletiva, também conhecida como tipo de atualização "oportunista". Esse tipo de atualização oferece as seguintes vantagens:
- É possível selecionar as VMs que você quer atualizar.
- É possível controlar o tempo e a sequência das atualizações.
- É possível usar a CLI gcloud ou a REST para atualizar todas as VMs imediatamente.
Como alternativa, se você quiser automatizar o lançamento de uma nova configuração para todos ou um subconjunto aleatório de VMs em um MIG, consulte Aplicar automaticamente as atualizações de configuração de VM em um MIG. Para ajudar você a decidir, consulte Métodos para aplicar uma nova configuração a VMs atuais.
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 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
INSTANCE_GROUP_NAME
: o nome do MIG.INSTANCE_TEMPLATE
: novo modelo de instânciaINSTANCE_NAMES
: uma lista de VMs para aplicar o modelo.DISRUPTION_LEVEL
: o nível de interrupção mínimo ou máximo:none
,refresh
,restart
oureplace
- A
none
minimal-action padrão é - A
replace
most-disruptive-allowed-action padrão é
- A
INSTANCE_GROUP_NAME
: o nome do grupo;NEW_TEMPLATE
: o nome do novo modelo;ZONE
a zona de uma instância a ser atualizada imediatamente;INSTANCE_NAME_1
eINSTANCE_NAME_2
: os nomes das VMs a serem atualizadas imediatamente;DISRUPTION_LEVEL
: o nível de interrupção mínimo ou máximo:NONE
,REFRESH
,RESTART
ouREPLACE
- o
minimalAction
padrão éNONE
. - o
mostDisruptiveAllowedAction
padrão éREPLACE
.
- o
Ação mínima: use esta opção para minimizar ao máximo a interrupção ou aplicar uma ação mais disruptiva do que o necessário.
- Para limitar o máximo de interrupções possível, defina a ação mínima como
NONE
. Se a atualização exigir uma ação mais disruptiva, o Compute Engine executará a ação necessária para executá-la. - 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 reiniciar uma VM para alterar os metadados. Mas se seu aplicativo ler metadados de instância somente quando uma VM for reiniciada, será possível definir a ação mínima comoRESTART
para coletar as alterações de metadados.
- Para limitar o máximo de interrupções possível, defina a ação mínima como
Ação permitida mais disruptiva: use esta opção para impedir uma atualização se ela exigir mais interferência do que você consegue sustentar. Se a atualização exigir uma ação mais disruptiva do que a definida por essa sinalização, a solicitação de atualização falhará. Por exemplo, se você definir a ação mais disruptiva permitida como
RESTART
, haverá falha na tentativa de atualizar a imagem do disco de inicialização, já que essa atualização exige a recriação da instância, uma ação mais disruptiva que a reinicialização.- A ação mínima padrão é
NONE
, o que limita a interrupção ao máximo. - A
REPLACE
most-disruptive-allowed-action padrão é Se não for possível tolerar essa interrupção, defina a ação mais disruptiva permitida para ser menos disruptiva. - Saiba mais sobre Como visualizar informações sobre MIGs e VMs gerenciadas.
- Veja Como criar modelos de instâncias.
- Saiba como usar famílias de imagens e uma substituição gradual para atualizar a imagem do SO em todas as VMs em um MIG.
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.
Aplicar configuração atualizada às VMs selecionadas
Verifique se o tipo de política de atualização do grupo está definido como "oportunista" para evitar que o MIG aplique automaticamente uma nova configuração às VMs. Para mais informações, consulte Verificar o tipo de política de atualização do grupo.
Em seguida, use a gcloud CLI ou a 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 grupo, use o comando
set-instance-template
.gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE
Aplicar configuração a VMs específicas
Para aplicar a configuração atualizada a VMs específicas, use o comando
update-instances
com a sinalização--instances
.gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAMES \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Aplicar configuração a todas as VMs
Para aplicar a configuração atualizada a todas as VMs, use o comando
update-instances
com a sinalização--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:
REST
Para configurar um novo modelo de instância para o grupo, chame o método
patch
em um MIG zonal ou regional e atualize o campoversions.instanceTemplate
. Para evitar a implantação automática do novo modelo em todas as VMs no 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", }] }
Aplicar configuração a VMs específicas
Para aplicar a configuração atualizada a VMs específicas, chame o método
applyUpdatesToInstances
para seu MIG zonal ou regional e especifique uma lista de VMs na solicitação.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 }
Aplicar configuração a todas as VMs
Para aplicar a configuração atualizada a todas as VMs, 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:
Semelhante a outros métodos de grupo de instâncias gerenciadas,
applyUpdatesToInstances
é baseado em intenções, o que significa que retorna uma resposta de operação. Essa operação pode levar algum tempo para ser concluída.Depois de fazer uma solicitação, verifique o status para confirmar se a atualização foi concluída.
Controlar o nível de interrupção durante atualizações seletivas
Dependendo da natureza da atualização, ela pode interferir no estado da instância. Por exemplo, a alteração do disco de inicialização de uma instância requer a substituição da instância. Controle o nível de interrupção durante uma atualização seletiva definindo as seguintes opções:
Ao atualizar VMs selecionadas, as duas opções aceitam os seguintes valores:
Valor Descrição Que propriedades da instância podem ser atualizadas? NONE
Não interrompa a instância de modo algum. Nenhuma REFRESH
Não pare a instância. Discos adicionais, metadados de instância, rótulos, tags RESTART
Pare a instância e inicie-a novamente. Discos extras, metadados de instância, rótulos, tipo de máquina REPLACE
Exclua a instância e crie-a novamente. Todas as propriedades da instância armazenadas no modelo da instância ou na configuração por instância A ação mais disruptiva permitida não pode ser menos disruptiva que a ação mínima.
Ao atualizar VMs de maneira seletiva, os seguintes padrões se aplicam:
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-12-22 UTC.
-