Como os MIGs com estado funcionam


Um grupo gerenciado de instâncias (MIG, na sigla em inglês) com estado preserva o estado exclusivo de cada instância de máquina virtual (VM), incluindo nome da VM, discos permanentes anexados, endereços IP e/ou metadados, na reinicialização, recriação, recuperação automática ou atualização da máquina.

Nesta página, você verá como MIGs com estado funcionam. Consulte Como configurar MIGs com estado para saber como realizar esse processo.

Visão geral de como funcionam os MIGs com estado

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

Para criar uma configuração com estado, defina uma política com estado não vazio e/ou uma ou mais configurações não vazias por instância:

A configuração entra em vigor depois que você ou o MIG a aplica:

  • Um MIG aplica automaticamente sua configuração de política com estado às instâncias novas e atuais.
  • Ao criar ou atualizar configurações por instância, é possível aplicar a nova configuração de maneira manual ou automática.

Depois que a configuração com estado (seja a política com estado e/ou as configurações por instância) for aplicada, verifique-a inspecionando o estado preservado de cada instância gerenciada.

Alterações subsequentes na configuração ou no tamanho com estado do MIG (por exemplo, diminuir o tamanho do MIG ou excluir ou abandonar instâncias do MIG) podem afetar os estados preservados das instâncias.

Como a configuração com estado é aplicada às instâncias gerenciadas

A configuração com estado entra em vigor depois que você ou o MIG a aplica. 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 de política com estado às instâncias novas e atuais.
  • Configurações por instância: ao criar ou atualizar configurações por instância, é possível aplicar a nova configuração de maneira manual ou automática.

Aplicando a configuração com estado às instâncias gerenciadas.

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

Ao criar ou atualizar uma política com estado (você adiciona ou remove um disco com estado, por exemplo), o MIG aplica a configuração da política com estado a todas as instâncias gerenciadas no grupo de maneira automática e assíncrona. Um MIG também aplica automaticamente sua configuração de política com estado às novas instâncias durante a criação delas, por exemplo, quando o tamanho do MIG é aumentado ou quando você cria instâncias no MIG manualmente.

Depois que a configuração for aplicada, será possível ver o efeito da atualização no estado preservado da política de cada instância gerenciada.

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

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

  • O MIG define autoDelete como FALSE para discos configurados como "com estado". Isso impede a exclusão desse disco na recriação da instância por meio de recuperação automática, atualização ou recriação manual.
  • O MIG define autoDelete para corresponder à configuração do modelo de instância (instanceTemplates.disks[].autoDelete) de todos os discos sem estado.

Alterar o valor da sinalização autoDelete não interrompe uma VM em execução.

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

Ao criar ou atualizar uma configuração por instância, é possível aplicar a nova configuração de maneira manual ou automática. Para mais informações, consulte Como aplicar a configuração com estado das configurações por instância.

A tabela a seguir 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 na VM necessária para a aplicação
Configurar um disco, definido pelo modelo de instância, para ser com estado. Ele é adicionado à configuração por instância. ATUALIZAR
Configurar um disco, definido pelo modelo de instância, para ficar sem estado. Ele é removido da configuração por instância. ATUALIZAR
Adicionar um disco, não definido pelo modelo de instância, e anexá-lo à VM. ATUALIZAR
Excluir um disco, não definido pelo modelo de instância, e removê-lo da VM. ATUALIZAR
Adicionar um par de chave-valor de metadados ATUALIZAR
Remover um par de chave-valor de metadados ATUALIZAR
Adiciona um disco de inicialização externo, não criado do modelo de instância, e o anexa à VM. SUBSTITUIR
Remover um disco de inicialização externo, não criado do modelo de instância, removê-lo da VM e criar um disco de inicialização do modelo de instância. REPLACE
Definir um endereço IP interno REPLACE
Remover um endereço IP interno REPLACE

Ao aplicar uma configuração por instância atualizada à VM correspondente, o MIG realizará as seguintes ações, dependendo de quais itens com estado forem atualizados:

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

Depois que uma configuração por instância é aplicada a uma VM gerenciada correspondente, é possível ver o efeito da atualização no estado preservado da configuração da instância.

Estado preservado de uma instância gerenciada

Quando aplicado, o MIG converte o modelo de instância e a configuração com estado em um "estado preservado" para cada instância gerenciada.

Para ver o estado preservado, inspecione uma instância gerenciada.

O MIG mantém esses estados preservados automaticamente, além de aplicar esse estado automaticamente e de maneira assíncrona a cada instância de VM real correspondente no MIG.

O estado preservado das VMs gerenciadas que são geradas pela aplicação da configuração com estado.

O estado preservado descreve quais itens individuais (discos permanentes, endereços IP, metadados) têm estado para uma determinada instância:

Estado preservado gerado pela configuração com estado aplicada.

O estado preservado gerado com base em uma política com estado é armazenado separadamente do estado preservado gerado com base em uma configuração por instância. O MIG combina os dois ao recriar uma VM, dando prioridade ao estado preservado de uma configuração por instância.

Estado preservado de acordo com a política com estado

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

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

O exemplo a seguir mostra um MIG com duas instâncias de VM que usam um disco com estado definido em uma política com estado que se aplica a cada instância. Não há configurações por instância neste exemplo.

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 inicialização 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 inicialização permanece sem estado. O disco com o nome do dispositivo, data-disk, precisa ser um modelo de instância e definido por ele.
  • Depois que a configuração é aplicada, o MIG converte a política com estado em estados preservados específicos da instância para cada instância gerenciada. Os estados preservados instruem o MIG a preservar o disco data-disk-1 da instância de VM node-1 e o disco data-disk-2 da instância node-2, porque os dois discos têm o nome de 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

A configuração por instância determina itens que precisam ser preservados em uma determinada VM. Esses itens não precisam ser definidos no modelo de instância do MIG.

Quando aplicado, o MIG converte cada configuração por instância em um estado preservado (preservedStateFromConfig) para a instância correspondente.

O exemplo a seguir mostra um MIG com duas instâncias de VM para as quais metadados e discos com estado são definidos em configurações por instância (PICs) para cada instância. Não há política com estado neste exemplo.

Estado preservado gerado somente de PICs.

Na figura anterior, observa-se o seguinte:

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

Os discos e 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, eles são definidos apenas pelas configurações por instância. Isso ocorre porque a configuração determinada em uma configuração por instância é específica a uma determinada VM, o que significa que ela não precisa 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

É possível configurar uma política com estado e uma ou mais configurações por instância em um MIG. Por exemplo, em uma política com estado, é possível definir discos com estado que estão presentes em todas as instâncias e, em configurações por instância, definir metadados específicos da instância.

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

Se você aplicar uma configuração por instância para adicionar um disco ou uma interface de rede que já esteja definido em uma política com estado, o MIG armazenará a configuração com estado para esse disco ou interface de rede no estado preservado da instância gerenciada da configuração por instância (preservedStateFromConfig) e removerá as entradas conflitantes do estado preservado da política (preserveStateFromPolicy). O MIG precisa atualizar a VM se o novo estado preservado for diferente do anterior. A atualização pode resultar na alteração de metadados, na alteração de endereço IP externo ou em uma troca de disco para removê-lo da última configuração de estado preservada e, em seguida, anexá-lo nesta nova configuração de estado.

Neste exemplo, a configuração por instância da instância de VM node-1 redefine:

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

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

Na figura anterior, observa-se o seguinte:

  • O modelo de instância define:
    • Três discos para todas as instâncias no MIG, com nomes de dispositivos boot-disk, data-disk e logs-disk.
    • Metadados comuns a todas as instâncias: logmonth:jan.
  • A política com estado declara que os discos com nomes de dispositivo data-disk e logs-disk têm estado, mas o disco de inicialização permanece sem estado.
  • Uma configuração por instância da instância node-1 redefine:
    • A configuração com estado para um disco com nome de dispositivo logs-disk: isso instrui o MIG a anexar o disco pd-logs-feb a node-1 no nome do dispositivo logs-disk.
    • Os metadados, definidos no modelo de instância, com o valor da chave logmonth:jan: isso instrui o MIG a definir o valor logmonth:feb como node-1.
  • Depois que você aplica a configuração, o MIG converte automaticamente a política com estado e a configuração por instância em um estado preservado específico da instância, armazenado na instância gerenciada.
    • O estado preservado da política instrui o MIG a preservar o disco data-disk-1 para a VM node-1. O estado preservado da política não inclui a configuração com estado para o disco com nome do dispositivo logs-disk porque essa configuração é substituída pela configuração para logs-disk na configuração por instância.
    • O estado preservado da configuração instrui o MIG a anexar e preservar o disco permanente logs-disk e a definir e preservar os metadados logmonth:feb da instância de VM node-1. Observe que o estado preservado da configuração substitui a configuração de logs-disk da política com estado e substitui os metadados logmonth:jan de modelo de instância.

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

Se você remover uma configuração de recurso da política com estado, o MIG removerá automaticamente o preservedStateFromPolicy correspondente de todas as instâncias gerenciadas. Os recursos de computação permanecem anexados às instâncias, mas agora estão sem estado.

No exemplo a seguir, remover um disco da política com estado leva à remoção desse disco dos estados preservados da política em todas as VMs gerenciadas. Esses discos permanecem vinculados às VMs deles, mas agora estão sem estado e podem ser excluídos e recriados na próxima recriação de VM.

Remoção de um disco de uma política com estado.

Se o mesmo item, por exemplo, um disco permanente com estado, estiver presente na política com estado e em uma configuração por instância, e você remover a configuração com estado somente da política com estado, o MIG não o removerá da configuração por instância. Para a VM correspondente, o recurso configurado permanece com estado.

No exemplo a seguir, remover o 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 ainda faz parte do estado preservado na configuração.

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

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

Se você remover a configuração com estado de uma configuração por instância e aplicar a alteração, o MIG removerá a configuração com estado automaticamente do estado preservado da configuração (preservedStateFromConfig) na instância gerenciada correspondente. Os recursos de computação que não fazem mais parte de qualquer estado preservado se tornam sem estado.

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

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

  • A configuração do disco será removida do estado preservado da configuração da instância.
  • Se um disco com o mesmo nome de dispositivo for definido no modelo de instância, mas não estiver configurado em uma política com estado, o disco continuará anexado à VM determinada. No entanto, o disco se torna 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, recuperação automática ou atualização da VM.
  • Se um disco com o mesmo nome de dispositivo não estiver definido no modelo de instância, ele será automaticamente removido da VM assim que a configuração por instância atualizada for aplicada à VM associada, estando ou não configurado para exclusão automática.
  • Se um disco com o mesmo nome de dispositivo estiver configurado em uma política com estado, a configuração da política com estado será convertida no estado preservado da política para a instância gerenciada fornecida e o disco permanecerá com estado.

No exemplo a seguir, a remoção de um disco azul e verde da configuração por instância de node-1 leva à remoção dos dois discos do estado preservado da instância gerenciada node-1 da configuração.

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

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

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

Remover metadados com estado de uma configuração por instância e aplicar a alteração faz com que o MIG remova imediatamente esses metadados do estado preservado da instância gerenciada correspondente:

  • Se você tiver definido metadados com a mesma chave no modelo de instância, o MIG aplicará 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 removerá imediatamente o valor da chave da instância.

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

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

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

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

Remover a configuração do IP interno da configuração por instância torna o endereço IP dessa VM sem estado. Nenhuma alteração automatizada é executada nessa VM, mas o endereço IP pode ser alterado depois que a VM for recriada, atualizada ou recuperada automaticamente.

Fallback para política com estado

Se você 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 permanecerá com estado de acordo com a política com estado.

O MIG remove automaticamente a configuração com estado do item de preservedStateFromConfig e a adiciona ao preservedStateFromPolicy da instância gerenciada correspondente.

No exemplo a seguir, remover 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 de preserveStateFromConfig da instância gerenciada node-1 porque o disco não faz mais parte da configuração por instância.
  • O MIG adiciona automaticamente o disco ao preserveStateFromPolicy da instância gerenciada node-1 porque a configuração de política com estado ainda está em vigor e não está mais em conflito com a configuração por instância node-1.

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

Feedback

Queremos saber sobre seus casos de uso, desafios e feedback que envolvem os MIGs com estado. Compartilhe essas informações com nossa equipe em mig-discuss@google.com.

A seguir