Como funcionam os MIGs com estado

Um grupo de instâncias geridas com estado (GIG com estado) preserva o estado único de cada instância de máquina virtual (VM), incluindo o nome da VM, os discos persistentes anexados, os endereços IP e/ou os metadados, no reinício, na recriação, na autorreparação ou na atualização da máquina.

Esta página descreve como funcionam os MIGs com estado. Consulte o artigo Configurar MIGs com estado para saber como configurar um MIG com estado.

Vista geral do funcionamento dos MIGs com estado

Um MIG é considerado com estado se tiver criado uma configuração com estado.

Cria uma configuração com estado ao definir uma política com estado não vazia e/ou uma ou mais configurações por instância não vazias:

A configuração entra em vigor depois de a aplicar:

  • Um MIG aplica automaticamente a configuração da política com estado às instâncias novas e existentes.
  • Quando cria ou atualiza configurações por instância, pode optar por aplicar a nova configuração manualmente ou automaticamente.

Depois de aplicar a configuração com estado (política com estado e/ou configurações por instância), pode validá-la inspecionando o estado preservado de cada instância gerida.

As alterações subsequentes à configuração com estado ou ao tamanho do MIG (por exemplo, diminuir o tamanho do MIG ou eliminar ou abandonar instâncias do MIG) podem afetar os estados preservados das instâncias.

Como a configuração com estado é aplicada a instâncias geridas

A configuração com estado é eficaz depois de ser aplicada por si ou pelo MIG. A aplicação da configuração com estado às instâncias de um MIG depende da configuração:

  • Política com estado: o MIG aplica automaticamente a configuração da política com estado às instâncias novas e existentes.
  • Configurações por instância: quando cria ou atualiza configurações por instância, pode escolher se quer aplicar a nova configuração manualmente ou se quer que seja aplicada automaticamente.

Aplicar configuração com estado a instâncias geridas.

Como as atualizações de políticas com estado são aplicadas às instâncias

Quando cria ou atualiza uma política com estado, por exemplo, adiciona ou remove um disco com estado, o GIG aplica a configuração da política com estado a todas as instâncias geridas no grupo de forma automática e assíncrona. Um MIG também aplica automaticamente a configuração da política com estado às novas instâncias durante a respetiva criação, por exemplo, quando o tamanho de um MIG é aumentado ou quando cria instâncias no MIG manualmente.

Depois de aplicar a configuração, pode ver o efeito da atualização no estado preservado da política de cada instância gerida.

As atualizações a uma política com estado não interrompem as VMs em execução.

Quando atualiza uma política com estado para adicionar um disco com estado, o MIG atualiza cada recurso de VM, alterando o valor da flag autoDelete do disco (instances.disks[].autoDelete):

  • O MIG define autoDelete como FALSE para discos que configurar como com estado. Isto impede a eliminação desse disco na recriação da instância através da recuperação automática, da atualização ou da recriação manual.
  • O MIG define autoDelete para corresponder à configuração do modelo de instância (instanceTemplates.disks[].autoDelete) para todos os discos que devem ser sem estado.

A alteração do valor do sinalizador autoDelete não interrompe uma MV em execução.

Como as atualizações de configuração por instância são aplicadas às instâncias

Quando cria ou atualiza uma configuração por instância, pode escolher se aplica a nova configuração manual ou automaticamente. Para mais informações, consulte o artigo Aplicação da configuração com estado a partir de configurações por instância.

A tabela seguinte mostra os níveis de interrupção necessários para aplicar diferentes atualizações de configuração por instância a uma VM:

Atualização da configuração por instância Interrupção da VM necessária para a aplicação
Configurar um disco, definido pelo modelo de instância, para ser com estado (adicionado à configuração por instância) ATUALIZAR
Configurar um disco, definido pelo modelo de instância, para ser sem estado (removido da configuração por instância) ATUALIZAR
Adicione um disco não definido pelo modelo de instância e anexe-o à VM ATUALIZAR
Remova um disco não definido pelo modelo de instância e desanexe-o da VM ATUALIZAR
Adicione um par de chave-valor de metadados ATUALIZAR
Remova um par de chave-valor de metadados ATUALIZAR
Adicione um disco de arranque externo, não criado a partir do modelo de instância, e anexe-o à VM SUBSTITUIR
Remova um disco de arranque externo que não foi criado a partir do modelo de instância, desanexe-o da VM e crie um disco de arranque a partir do modelo de instância SUBSTITUIR
Defina um endereço IP interno SUBSTITUIR
Remova um endereço IP interno SUBSTITUIR

Quando aplica uma configuração por instância atualizada à VM correspondente, o GIG executa as seguintes ações, consoante os itens com estado que são atualizados:

  • Adiciona (ou remove) discos, endereços IP ou metadados ao estado preservado da configuração na instância gerida correspondente.
  • Anexa (ou desanexa) discos que não estão definidos pelo modelo de instância à VM.
  • Define (ou remove) pares de chave-valor de metadados específicos para a VM.
  • Atribui (ou remove) endereços IP especificados à instância de VM.

Depois de uma configuração por instância ser aplicada a uma VM gerida correspondente, pode ver o efeito da atualização no estado preservado a partir da configuração da instância.

Estado preservado de uma instância gerida

Quando é aplicada, o MIG traduz o modelo de instância e a configuração com estado numa "configuração preservada" para cada instância gerida.

Pode ver o estado preservado inspecionando uma instância gerida.

O GIG mantém estes estados preservados automaticamente e aplica este estado de forma automática e assíncrona a cada instância de VM real correspondente no GIG.

Estado preservado das VMs geridas que são geradas através da aplicação da configuração com estado.

O estado preservado descreve os itens individuais (discos persistentes, endereços IP, metadados) que são com estado para uma determinada instância:

Estado preservado gerado a partir da configuração com estado aplicada.

O estado preservado gerado com base numa política com estado é armazenado separadamente do estado preservado gerado com base numa configuração por instância. O MIG combina ambos quando recria uma VM, com o estado preservado de uma configuração por instância a ter prioridade.

Estado preservado de acordo com a política com estado

Uma política com estado especifica os itens, presentes em todas as instâncias e definidos no modelo de instância do GIG, a preservar individualmente para cada instância de VM num GIG.

Quando aplicada, o GIG traduz a política com estado em estados preservados específicos da instância (managedInstances[].preservedStateFromPolicy). O GIG mantém estes estados preservados automaticamente.

O exemplo seguinte mostra um MIG com duas instâncias de VM que usam um disco com estado definido numa política com estado que se aplica a todas as instâncias. Neste exemplo, não existem configurações por instância.

Estado preservado gerado apenas a partir da política com estado.

A figura anterior mostra um MIG com duas instâncias:

  • O modelo de instância define um disco de arranque com o nome do dispositivo boot-disk e um disco com o nome do dispositivo data-disk para todas as instâncias no MIG.
  • A política com estado declara data-disk como com estado. O disco de arranque permanece sem estado. Tenha em atenção que o disco com o nome do dispositivo data-disk tem de ser e é definido pelo modelo de instância.
  • Após a aplicação da configuração, o MIG traduz a política com estado em estados preservados específicos da instância para cada instância gerida. Os estados preservados indicam ao MIG que preserve o disco data-disk-1 para a instância de VM node-1 e o disco data-disk-2 para a instância node-2, porque ambos os discos têm o nome do dispositivo data-disk configurado na política com estado.
  • Este exemplo não tem configurações por instância.

Estado preservado de acordo com a configuração por instância

Uma configuração por instância especifica os itens que têm de ser preservados para uma determinada VM. Estes itens não têm de ser definidos no modelo de instância do MIG.

Quando aplicada, a MIG traduz cada configuração por instância num estado preservado (preservedStateFromConfig) para a instância correspondente.

O exemplo seguinte mostra um MIG com duas instâncias de VM para as quais os metadados e os discos com estado são definidos em configurações por instância (PICs) para cada instância. Neste exemplo, não existe uma política com estado.

Estado preservado gerado apenas a partir de PICs.

Na figura anterior:

  • O modelo de instância define um disco de arranque com o nome do dispositivo boot-disk para todas as instâncias no MIG. O disco de arranque não tem estado para todas as VMs no MIG.
  • As configurações por instância definem os estados a preservar para duas instâncias no MIG: node-1 e node-2.
    • Para a instância node-1, a configuração por instância define um disco my-legacy-1 com o nome do dispositivo legacy-disk e metadados node-id:xyz273.
    • Para a instância node-2, a configuração por instância define um disco my-logs-1 com o nome do dispositivo logs-disk e metadados node-id:pqr851.
  • Depois de a configuração ser aplicada, o MIG traduz automaticamente as configurações por instância em estados preservados para cada instância gerida. Os estados preservados indicam ao MIG que anexe e preserve o seguinte:
    • Disco persistente my-legacy-1 e metadados node-id:xyz273 para a VM node-1
    • Disco persistente my-logs-1 e metadados node-id:pqr851 para a VM node-2
  • Este exemplo não tem uma política com estado.

Tenha em atenção que os discos e os metadados no estado preservado das configurações por instância não são definidos pelo modelo de instância neste exemplo. Em vez disso, são definidos apenas pelas configurações por instância. Isto deve-se ao facto de a configuração especificada numa configuração por instância ser específica de uma determinada VM, o que significa que não tem de estar presente no modelo de instância.

As configurações por instância têm prioridade sobre a política com estado e o modelo de instância

Pode configurar uma política com estado e uma ou mais configurações por instância num MIG. Por exemplo, numa política com estado, pode definir discos com estado que estão presentes em todas as instâncias e, nas configurações por instância, pode definir metadados específicos da instância.

A configuração por instância de uma instância gerida tem prioridade sobre a configuração conflituosa no modelo de instância ou numa política com estado.

Se aplicar uma configuração por instância para adicionar um disco ou uma interface de rede que já esteja definida numa política com estado, o MIG armazena a configuração com estado desse disco ou interface de rede no estado preservado da instância gerida (preservedStateFromConfig) e remove as entradas em conflito do respetivo estado preservado da política (preservedStateFromPolicy). O MIG tem de atualizar a VM se o novo estado preservado for diferente do anterior. A atualização pode resultar numa alteração dos metadados, numa alteração do endereço IP externo ou numa troca de disco para desanexar o disco da configuração do estado preservado mais recente e anexar o disco especificado na nova configuração do estado preservado.

No exemplo seguinte, a configuração por instância para a instância de VM node-1 redefine:

  • O estado preservado para o disco com o nome do dispositivo logs-disk, definido originalmente na política com estado
  • O valor da chave de metadados logmonth, originalmente definido no modelo de instância.

A configuração das configurações por instância tem prioridade sobre a política com estado e o modelo de instância.

Na figura anterior:

  • O modelo de instância define:
    • Três discos para todas as instâncias no MIG, com os nomes dos dispositivos boot-disk, data-disk, logs-disk.
    • Metadados comuns a todas as instâncias: logmonth:jan.
  • A política com estado declara que os discos com os nomes de dispositivos data-disk e logs-disk têm estado; o disco de arranque permanece sem estado.
  • Uma configuração por instância para a instância node-1 redefine:
    • Configuração com estado para um disco com o nome do dispositivo logs-disk: isto indica ao MIG para anexar o disco pd-logs-feb a node-1 com o nome do dispositivo logs-disk.
    • Metadados, definidos no modelo de instância, com o valor da chave logmonth:jan: isto indica ao MIG para definir o valor logmonth:feb como node-1.
  • Depois de aplicar, a configuração, o MIG traduz automaticamente a política com estado e a configuração por instância num estado preservado específico da instância, armazenado na instância gerida.
    • O estado preservado da política indica ao GIG que preserve o disco data-disk-1 para a VM node-1. Tenha em atenção que o estado preservado da política não inclui a configuração com estado para o disco com o nome do dispositivo logs-disk, porque esta configuração é substituída pela configuração de logs-disk na configuração por instância.
    • O estado preservado da configuração indica ao GIG que anexe e preserve o disco persistente logs-disk e que defina e preserve os metadados logmonth:feb para a instância da VM node-1. Tenha em atenção que o estado preservado da configuração substitui a configuração de logs-disk da política com estado e substitui os metadados de logmonth:jan do modelo de instância.

Como a remoção de um recurso de uma política com estado afeta o estado preservado

Se remover uma configuração de recursos da sua política com estado, o MIG remove automaticamente o preservedStateFromPolicy correspondente para todas as instâncias geridas. Os recursos de computação permanecem associados às instâncias, mas deixam de ter estado.

No exemplo seguinte, a remoção de um disco da política com estado leva à remoção desse disco dos estados preservados da política em todas as VMs geridas. Esses discos permanecem associados às respetivas VMs, mas deixam de ter estado e podem ser eliminados e recriados na próxima recriação da VM.

Remover um disco de uma política com estado.

Se o mesmo item, por exemplo, um disco persistente com estado, estiver presente na política com estado e numa configuração por instância, e remover a respetiva configuração com estado apenas da política com estado, o MIG não o remove da configuração por instância. Para a VM correspondente, o recurso configurado permanece com estado.

No exemplo seguinte, a remoção do disco da política com estado não leva à remoção do disco da configuração por instância. O disco permanece com estado porque continua a fazer parte do estado preservado da configuração.

Remover um disco de uma política com estado quando também existe uma configuração por instância.

Como a remoção de itens das configurações por instância afeta o estado preservado

Se remover a configuração com estado de uma configuração por instância e aplicar a alteração, o GIG remove automaticamente a configuração com estado do estado preservado da configuração (preservedStateFromConfig) na instância gerida correspondente. Os recursos de computação que já não fazem parte de nenhum estado preservado tornam-se sem estado.

Como a remoção da configuração de discos com estado das configurações por instância afeta o estado preservado

Se remover um disco com estado de uma configuração por instância e aplicar a alteração à instância de VM associada, o MIG faz o seguinte:

  • A configuração do disco é removida do estado preservado da configuração da instância.
  • Se um disco com o mesmo nome do dispositivo estiver definido no modelo de instância, mas não estiver configurado numa política com estado, o disco permanece associado à VM especificada. No entanto, o disco torna-se sem estado para a VM especificada e pode ser recriado de acordo com a configuração do modelo de instância no próximo evento de recriação, autocura ou atualização da VM.
  • Se um disco com o mesmo nome do dispositivo não estiver definido no modelo de instância, é automaticamente separado da VM imediatamente após a aplicação da configuração por instância atualizada à VM associada, independentemente da respetiva configuração de eliminação automática.
  • Se um disco com o mesmo nome do dispositivo estiver configurado numa política com estado, a respetiva configuração de política com estado é traduzida no estado preservado da política para a instância gerida especificada, e o disco permanece com estado.

No exemplo seguinte, a remoção de um disco azul e um disco verde da configuração por instância de node-1 leva à remoção de ambos os discos do estado preservado da instância gerida de node-1 da configuração.

  • O disco azul permanece associado à instância de VM node-1, mas agora é sem estado e pode ser recriado na próxima recriação da VM de acordo com a configuração do modelo de instância.
  • O disco verde está separado da instância de VM node-1 porque o modelo de instância não define um disco com o mesmo nome do dispositivo.

Remover discos de uma configuração por instância.

Como a remoção de metadados com estado das configurações por instância afeta o estado preservado

A remoção de metadados com estado de uma configuração por instância e a aplicação da alteração faz com que o MIG remova imediatamente esses metadados com estado do estado preservado da instância gerida correspondente:

  • Se tiver definido metadados com a mesma chave no modelo de instância, o MIG aplica imediatamente o valor do modelo de instância à instância.
  • Se os metadados com a mesma chave não estiverem definidos no modelo de instância, o MIG remove imediatamente o valor da chave da instância.

No exemplo seguinte, a remoção dos metadados mode:dev e id:xyz273 da configuração por instância de node-1 leva à remoção automática de ambos os pares de chave-valor do estado preservado da instância gerida de node-1 da configuração.

  • mode:dev é substituído pelo mode:test do modelo de instância na VM.
  • id:xyz273 é removido imediatamente da VM porque o modelo de instância não tem metadados com a mesma chave id para os substituir.

Remover metadados de uma configuração por instância.

Como a remoção da configuração de IP com estado das configurações por instância afeta o estado preservado

A remoção da configuração de IP interno da configuração por instância torna o endereço IP desta VM sem estado. Não são feitas alterações automáticas nesta VM, mas o endereço IP pode mudar depois de a VM ser recriada, atualizada ou reparada automaticamente.

Recorra à política com estado

Se remover a configuração com estado de um recurso de uma configuração por instância e tiver configurado o mesmo recurso na política com estado, o recurso permanece com estado de acordo com a política com estado.

O MIG remove automaticamente a configuração com estado do item do preservedStateFromConfig e adiciona-a ao preservedStateFromPolicy para a instância gerida correspondente.

No exemplo seguinte, a remoção de um disco da configuração por instância de node-1 não leva à remoção do disco da política com estado. O disco permanece com estado de acordo com a política com estado:

  • O MIG remove automaticamente o disco da instância gerida preserveStateFromConfig para a instância gerida node-1 porque o disco já não faz parte da respetiva configuração por instância.
  • O MIG adiciona automaticamente o disco à preserveStateFromPolicy para a instância gerida node-1 porque a configuração da política com estado ainda está em vigor e já não está em conflito com a configuração node-1 por instância.

Remover um disco de uma configuração por instância, mas não de uma política com estado.

Feedback

Queremos saber mais sobre os seus exemplos de utilização, desafios e feedback acerca dos MIGs com estado. Partilhe o seu feedback com a nossa equipa através do endereço de email mig-discuss@google.com.

O que se segue?