Nesta página, explicamos como configurar as instâncias de máquina virtual (VM) em um grupo de instâncias gerenciadas (MIG) e os métodos que podem ser usados para aplicar a configuração às VMs no grupo.
Especifique a configuração pretendida para as VMs em um MIG usando os seguintes componentes de configuração de VM:
- Obrigatório: modelo de instância
- Opcional: configuração de todas as instâncias
- Opcional: configuração com estado
Sempre que você atualiza a configuração pretendida usando 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 atuais, use os métodos descritos nesta página:
- Lançamentos automáticos com um orçamento de interrupção e atualizações canário opcionais de novos modelos
- Atualizações manuais seletivas para VMs específicas para minimizar as interrupções
- Recriação de VMs específicas
Também é possível configurar seu MIG para aplicar a configuração mais recente disponível às VMs durante os reparos da VM. Para mais informações, consulte Aplicar atualizações de configuração durante reparos.
Se você só precisar redimensionar um MIG, consulte a documentação sobre como adicionar ou remover VMs em um MIG. Se você quiser saber mais sobre como configurar recursos do MIG, consulte os documentos de escalonamento automático, recuperação automática e balanceamento de carga e cargas de trabalho com estado.
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.
- Automático (proativo): use esse método se quiser que o MIG aplique automaticamente novas configurações a todas ou a um subconjunto de VMs atuais no grupo. O nível de interrupção na execução de instâncias depende da política de atualização configurada. Use esse método para atualizar canário novos modelos de instância. Para usar esse método, defina o tipo de atualização fo MIG como "proativo".
- Seletivo (oportunista): use essr método se quiser aplicar a atualização manualmente ou se quiser atualizar todas as VMs do grupo de uma só vez. Você quer segmentar uma ou todas as VMs a serem atualizadas para a configuração mais recente. Para usar esse método, defina o tipo de atualização do MIG como "oportunista".
- Recriação de VMs: para aplicar novas configurações, recrie VMs específicas.
- O lançamento de uma atualização acontece automaticamente de acordo com suas especificações, sem a necessidade de contribuição adicional após a solicitação inicial. Você pode especificar a velocidade da implantação, o nível de interrupção do serviço e o escopo da atualização.
- É possível fazer lançamentos parciais que permitem teste canário.
- É possível selecionar as instâncias 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 instâncias imediatamente.
Uma das VMs no seu MIG fica inativa e precisa ser reparada, mas você não quer que a configuração dela seja alterada. Se você definir o tipo de atualização do MIG como oportunista e não aplicar à força atualizações durante os reparos, o Compute Engine reparará a VM usando a mesma configuração que foi usada para criar essa VM, mesmo que o modelo de instância original não exista mais.
Você tem um MIG com escalonamento automático e quer aplicar uma atualização que não é crítica sem urgência. Para garantir que o Compute Engine não desmonte suas VMs para aplicar a atualização, defina o tipo de atualização do MIG como oportunista. Ao escalonar verticalmente, o escalonador automático encerra preferencialmente as VMs com a configuração antiga. Quando o grupo é escalonado verticalmente, ele cria VMs com a configuração mais recente.
No Console do Google Cloud, acesse a página Grupos de instâncias.
Selecione o MIG que você quer atualizar.
Na parte superior da página, clique em Atualizar VMs.
Para definir um modelo diferente para o grupo, em Novo modelo, selecione o modelo de instância que você quer usar.
Em Atualizar configuração, escolha a atualização automática ou seletiva.
INSTANCE_GROUP_NAME
: o nome do grupo;NEW_TEMPLATE
: o nome do novo modelo do grupoTYPE
: o tipo de atualização,opportunistic
ouproactive
PROJECT_ID
: o projeto em que o MIG existe.REGION
: a região em que o MIG está localizado. Para um MIG zonal, substituaregions/REGION
porzones/ZONE
.INSTANCE_GROUP_NAME
: o nome do grupo;NEW_TEMPLATE
: o nome do novo modelo do grupo.TYPE
: o tipo de atualização,OPPORTUNISTIC
ouPROACTIVE
- Aplicar automaticamente as atualizações de configuração de VM em um MIG
- Aplicar seletivamente as atualizações de configuração da VM em um MIG
- VMs em execução, suspensas e interrompidas
- VMs com status
SUSPENDING
ouSTOPPING
- Exclui as VMs suspensas e interrompidas.
- Cria novas VMs com o novo modelo de instância.
- Executa o processo de inicialização.
- Suspende ou interrompe as VMs.
- Retoma ou inicia as VMs.
- Executa a atualização nas VMs quando elas estão em execução.
- Executa o processo de inicialização.
- Suspende ou interrompe as VMs.
- No modo de política de espera
manual
, o MIG atualiza apenas as VMs em execução com base no número ou na porcentagem de VMs em que você quer aplicar a atualização. As VMs suspensas e interrompidas permanecem nas versões anteriores. - No modo de política de espera
scale-out-pool
, não é possível iniciar uma atualização canário no MIG. Você define ambos os campos com o mesmo valor.
Essa é uma solicitação válida. Nesse caso, ele não gera ambiguidade e o novo modelo de instância é aplicado ao MIG.
Por exemplo, na solicitação a seguir, os campos de nível superior
instanceTemplate
eversions
especificam o mesmo modelo de instância que é diferente do modelo atual. Portanto, o MIG é atualizado para o novo modelo de instância:{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Você define ambos os campos com valores que não correspondem, mas apenas um valor é diferente do modelo de instância atual no MIG.
Essa é uma solicitação válida. O campo que é diferente da configuração atual é usado como o valor pretendido. Por exemplo, você chama o método
update()
e fornece os dois campos, mas apenas um campo é atualizado:{ "instanceTemplate": "global/instanceTemplates/CURRENT_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Você define ambos os campos com valores que não correspondem, e os dois valores são diferentes do modelo de instância atual no MIG.
Esta configuração é inválida e retorna um erro, porque não há uma intent clara.
{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/A_DIFFERENT_NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
- Saiba mais sobre como implantar automaticamente um novo modelo de instância em um MIG.
- Saiba mais sobre como atualizar seletivamente instâncias em um MIG.
- Veja informações sobre o MIG e as VMs dele.
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.
Componentes de configuração para VMs em um MIG
Configure as VMs em um MIG usando os seguintes componentes:
Componente Propriedades Caso de uso Modelo de instância Tipo de máquina, imagem do disco de inicialização, rótulos, script de inicialização e outras propriedades da VM Obrigatório: use um modelo de instância para definir propriedades de instância obrigatórias e opcionais para todas as VMs no grupo.
Opcional: para testar uma segunda configuração de VM canário, adicione um segundo modelo de instância ao grupo e aplique-o a um subconjunto de VMs em o grupo.Configuração de todas as instâncias Rótulos e metadados Opcional: use uma configuração em todas as instâncias para substituir rapidamente as propriedades de modelo de instância em todas as VMs do grupo. Configuração com estado Stateful disks, IP addresses, and metadata Opcional: se você precisar oferecer suporte a uma carga de trabalho com estado, adicione a configuração com estado às VMs no grupo. Se você atualizar qualquer configuração do grupo usando esses componentes, será preciso aplicar a configuração atualizada às VMs atuais no grupo para tornar a configuração atualizada eficaz.
Métodos para aplicar uma nova configuração às VMs atuais
Depois de atualizar a configuração de VM de um MIG, é possível aplicar a nova configuraça a VMs atuais no grupo usando os seguintes métodos:
Para mais informações sobre como configurar o tipo de atualização de um MIG, consulte Configurar uma atualização proativa ou oportunista.
Automático (proativo)
Um tipo de atualização automática também é conhecido como tipo de atualização proativa. Quando você define o tipo de atualização do MIG como proativo, ele aplica automaticamente as configurações atualizadas às VMs, conforme necessário.
Definir o tipo de atualização do MIG como oferece duas vantagens principais:
Para saber como definir o tipo de atualização do MIG, consulte Configurar uma atualização proativa ou oportunista.
Para mais informações sobre lançamentos automáticos, consulte Aplicar automaticamente as atualizações de configuração de VM em um MIG.
Seletivo (oportunista)
Um tipo de atualização seletiva também é conhecido como um tipo de atualização oportunista. Quando você define o tipo de atualização do MIG como oportunista, ele aplica novas configurações a VMs atuais somente quando você seleciona seletivamente VMs a serem atualizadas.
Definir o tipo de atualização do MIG como oportunista oferece as seguintes vantagens:
Em determinados cenários, um tipo de atualização seletiva é útil porque você não quer instabilidade no sistema, se puder ser evitado. Por exemplo, considere o seguinte:
Para saber como definir o tipo de atualização do MIG, consulte Configurar uma atualização proativa ou oportunista.
Para mais informações sobre como atualizar VMs seletivamente, consulte Aplicar atualizações de configuração seletivamente em um MIG.
Recriação de VMs
É possível recriar qualquer VM em um MIG. Ao fazer isso, o MIG aplica qualquer configuração atualizada que ainda não tenha sido aplicada a essa VM. Para mais informações, consulte Como recriar VMs em um MIG.
Configurar uma atualização proativa ou oportunista
Para aplicar novas configurações às VMs atuais, defina o tipo de atualização do MIG como "proativo". Para aplicar novas configurações às VMs atuais somente quando você selecionar uma VM a ser atualizada, defina o tipo de atualização do MIG como "oportunista".
Use o console do Google Cloud, a Google Cloud CLI ou a REST.
Console
gcloud
Use o comando
rolling-action start-update
e defina a sinalização--type
comoopportunistic
ouproactive
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --type=TYPE
Também é possível usar o comando Beta
update
e incluir a sinalização--update-policy-type
.gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \ --update-policy-type=TYPE
Substitua:
REST
Chame o método
patch
em um recurso MIG zonal ou regional.PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "TYPE" # Choose an opportunistic or proactive update }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
Substitua:
Para saber mais sobre como configurar um novo modelo e aplicá-lo a instâncias novas e atuais em um MIG, consulte as seguintes páginas:
Verificar o tipo de política de atualização do seu grupo
É possível ver o tipo de política de atualização configurado atualmente do MIG ("oportunista" ou "proativo") e outras configurações de política de atualização usando a CLI gcloud ou REST.
gcloud
Use o comando
describe
e inclua a sinalização--format
para listar apenas as configurações deupdatePolicy
.gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \ --format="(updatePolicy)"
REST
Faça uma solicitação
GET
em um MIG zonal ou regional e verifique o campoupdatePolicy
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
Para alterar o tipo de política, consulte Configurar uma atualização proativa ou oportunista.
Atualizações para VMs suspensas e interrompidas
Se você tiver suspenso e interrompido pools de VMs em um MIG, será possível atualizar seletivamente (oportunistas) VMs suspensas ou interrompidas da mesma forma que atualiza outras VMs em execução. Se você configurar as atualizações automáticas (proativas), o MIG vai atualizar as VMs na seguinte ordem:
Para uma atualização automática, o MIG calcula o máximo de sobretensão e o máximo indisponível com base no número de destino apenas de VMs em execução. não considere as VMs no pool em espera.
Se a atualização automática exigir a substituição das VMs no grupo, o MIG fará o seguinte:
Se a atualização automática exigir apenas a atualização ou a reinicialização das VMs no grupo, o MIG fará o seguinte:
Atualizações Canário
Se você quiser iniciar atualizações canário em um MIG que tenha suspenso ou interrompido VMs, o seguinte se aplicará:
Relação entre campos
versions
einstanceTemplate
Se você usar REST, recomendamos utilizar os campos
instanceGroupManagers.versions
eregionInstanceGroupManagers.versions
para configurar modelos de instância para MIGs zonais e regionais.O campo legado
instanceTemplate
se sobrepõe à funcionalidade com o campoversions
porque ambos os campos permitem que você especifique qual modelo de instância o MIG usa para criar instâncias. No entanto, somente o campoversions
permite especificar uma configuração avançada de dois modelos (canário).Para compatibilidade com versões anteriores, os MIGs ainda são compatíveis com a configuração do campo
instanceTemplate
de nível superior, embora seja recomendável passar a usar apenas o campoversions
. O uso do campoinstanceTemplate
de nível superior e do campoversions
ao mesmo tempo pode gerar ambiguidade e confusão.Se você especificar o campo
instanceTemplate
e o campoversions
ao chamar o métodoupdate()
oupatch()
, há três resultados possíveis:Os campos
versions
einstanceTemplate
e o métodoget()
Se você especificar somente um modelo de instância, seja por meio do campo
instanceTemplate
de nível superior, do campoversions
ou de ambos, o métodoget()
retornará os dois campos na resposta. Isso torna o novo campoversions
compatível com versões anteriores. Desde que você especifique um modelo de instância único em um desses campos, não haverá alteração no que o métodoget()
retorna no campoinstanceTemplate
.Se forem especificados dois modelos de instância no campo
versions
, o métodoget()
retornará um campoinstanceTemplate
de nível superior vazio. Não há como expressar sem ambiguidade uma configuração de modelo canário de duas instâncias no campoinstanceTemplate
de nível superior. Portanto, o campo não é usado durante uma atualização canário.O campo
versions
e o métodosetInstanceTemplate()
Para compatibilidade com versões anteriores, o método
setInstanceTemplate()
se comporta como anteriormente, permitindo alterar o modelo usado pelo MIG para criar instâncias. Quando você chama este método, o campoversions
é substituído pelo modelo de instância especificado pelo métodosetInstanceTemplate()
.O método
setInstanceTemplate()
também define aupdatePolicy
comoOPPORTUNISTIC
. Isso impede que o MIG implante ativamente um modelo de instância que não esteja explicitamente especificado no campoversions
.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.
-