Sobre a suspensão e a interrupção de VMs em um MIG


Neste documento, descrevemos as ações de suspensão e interrupção em instâncias de máquina virtual (VM) em um grupo gerenciado de instâncias (MIG). Ele também descreve como suspender e interromper VMs em um MIG pode ajudar a economizar custos e reduzir o tempo de espera quando você precisa de mais VMs no grupo.

Os MIGs permitem suspender e interromper as VMs para:

  • Pause um aplicativo ou serviço que você não está usando para economizar custos por não pagar por recursos de computação.
  • Acelere o escalonamento horizontal do MIG iniciando VMs pré-inicializadas do pool em espera de VMs interrompidas e suspensas.

Casos de uso

As seções a seguir descrevem casos de uso típicos do pool em espera em um MIG.

Pausar um aplicativo ou serviço

É possível suspender ou interromper as VMs em um MIG para pausar o aplicativo e retomá-lo quando necessário, de acordo com computação, horário de trabalho, horário de pico e restrições de orçamento. É possível manter os resultados dos cálculos atuais em discos permanentes ou, no caso de VMs suspensas, na memória.

Por exemplo, convém suspender ou interromper as VMs em um MIG nos seguintes cenários:

  • Você tem cargas de trabalho intensas durante a semana e quer suspender as VMs nos fins de semana para economizar custos.
  • Você tem um ambiente de teste que é necessário durante as mudanças de implementação e quer interrompê-lo quando não estiver desenvolvendo ativamente.

Acelerar o escalonamento horizontal do MIG

É possível manter um pool de VMs pré-inicializadas em espera pronto para iniciar quando o MIG for redimensionado. Em vez de criar novas VMs e esperar que o aplicativo seja inicializado e ficar pronto para ser executado, o MIG inicia ou retoma as VMs do pool em espera. Nesse caso, a inicialização da VM é concluída com antecedência, não em um momento crítico de aumento de carga.

Os pools em espera são úteis para aplicativos que levam muito tempo para inicializar, por exemplo, nos seguintes cenários:

  • Aplicativos que precisam fazer o download de conteúdo atualizado para discos permanentes.
  • Apps que precisam armazenar conteúdo extra em cache na memória, por meio de downloads do armazenamento externo, da computação local ou uma combinação de ambos.
  • Aplicativos que precisam instalar software novo durante a inicialização, como nós do Kubernetes.

Recursos preservados

A tabela a seguir mostra os recursos preservados quando você suspende e interrompe VMs em um MIG.

Preservado VM suspensa interrompeu a VM
Nome da VM
IP interno
IP externo: temporário
IP externo (estático*)
Discos
Metadados
Memória

*Se você quiser preservar um IP externo ao interromper ou suspender uma VM em um MIG, use a configuração de MIG com estado a fim de promover o IP externo a um IP estático.

Se uma VM tiver discos SSD locais anexados, quando você interromper ou suspender a VM, os dados nesses discos não serão preservados.

Comportamento e configuração

O pool em espera é formado por pools de VMs interrompidos e suspensos. Todas as VMs interrompidas se tornam parte do pool interrompido, e todas as VMs suspensas se tornam parte do pool suspenso. Se você tiver configurado o escalonamento automático em um MIG, depois de suspender ou interromper uma VM, o MIG criará novas VMs imediatamente para manter o tamanho recomendado.

Tamanhos de destino de pools suspensos e interrompidos

Semelhante ao tamanho de destino do MIG, os pools interrompidos e suspensos têm os próprios tamanhos de destino. É possível controlar o tamanho de destino do pool em espera das seguintes maneiras:

  • Configurando os valores dos tamanhos de destino interrompidos e suspensos.
  • Interrompendo e suspender manualmente as VMs, o que muda automaticamente os tamanhos de destino.

Quando você altera os tamanhos de destino para pools interrompidos ou suspensos, o MIG se comporta da seguinte maneira:

  • Quando você aumenta o tamanho dos pools suspensos ou interrompidos, o MIG cria novas VMs, espera até que elas sejam inicializadas e depois suspende ou interrompe as VMs da maneira adequada. Para MIGs regionais, as VMs são criadas de acordo com o formato de distribuição de destino configurado.
  • Quando você diminui o tamanho dos pools suspensos ou interrompidos, o MIG seleciona arbitrariamente quais VMs suspensas ou interrompidas são excluídas.
  • Quando você altera o tamanho de destino do MIG e o tamanho do pool suspenso ou interrompido simultaneamente, o MIG tenta minimizar o número de operações necessárias para aplicar as alterações. Isso significa que o MIG pode retomar ou iniciar VMs do pool em espera ou suspender ou interromper algumas VMs em execução.

Política de espera

A política de espera define o comportamento do pool em espera com base nos seguintes parâmetros especificados:

  • Modo: o modo em que o MIG usa VMs suspensas e interrompidas. Pode ser o modo manual ou scale-out-pool.
  • Atraso inicial: o tempo em que o MIG executa uma VM recém-criada antes de suspendê-la ou interrompê-la. Configure o atraso inicial para que haja tempo suficiente para que o app seja pré-inicializado e esteja pronto para ser executado quando a VM for iniciada ou retomada.

Modo

É possível escolher como gerenciar pools em espera definindo o modo de operação. Há duas opções possíveis: o modo manual e o modo scale-out-pool.

Modo manual (padrão)

No modo manual, você tem controle total sobre quais VMs são interrompidas e suspensas no MIG. O modo manual é o modo padrão do pool em espera.

O modo manual é útil nos seguintes casos:

  • Para pausar sua carga de trabalho e economizar nos custos de VMs em execução inativas.
  • Para integrar o MIG com escalonadores automáticos de terceiros que exigem gerenciamento avançado de VMs individuais.
  • Interromper as VMs selecionadas para depuração.

Com o modo manual, o MIG não aplica automações ao pool em espera:

  • Quando você ou o escalonador automático aumenta o tamanho de destino do MIG, o MIG não inicia ou retoma automaticamente as VMs, mas cria novas.
  • Quando você ou o escalonador automático diminui o tamanho de destino do MIG, o MIG não interrompe ou suspende automaticamente as VMs em execução, mas as exclui.

Escalonar o modo de pool

No modo de pool de escalonamento horizontal, o MIG usa as VMs dos pools em espera para acelerar o escalonamento horizontal retomando ou iniciando-as. Em seguida, o MIG reabastece automaticamente o pool em espera com novas VMs para manter os tamanhos de destino.

O modo de pool de escalonamento horizontal é útil para acelerar o escalonamento horizontal do MIG nos seguintes casos:

  • Se você usa o escalonador automático do Compute Engine.
  • Se você usa escalonadores automáticos de terceiros e quer preservar qualquer integração atual.
  • Se você aumentar manualmente o tamanho de destino das VMs em execução,

No modo de pool de escalonamento horizontal, o MIG se comporta da seguinte maneira:

  • Quando você ou o escalonador automático aumenta o tamanho de destino das VMs em execução no MIG, ele realiza uma ação na seguinte ordem:

    1. O MIG retoma as VMs suspensas caso alguma esteja disponível nas zonas em que o MIG seja escalonado.
    2. Depois de retomar as VMs suspensas, se o tamanho de destino do MIG ainda não tiver sido atingido, ele iniciará as VMs interrompidas se alguma estiver disponível nas zonas em que o MIG será escalonado.
    3. Depois de iniciar as VMs, se o tamanho de destino do MIG ainda não for alcançado, ele vai criar novas VMs do zero.

    Depois que o pool em espera é usado para acelerar o escalonamento horizontal, o MIG faz o seguinte:

    1. Ele cria novas VMs para repor os pools suspensos e interrompidos com base nos tamanhos de destino e de acordo com o formato de distribuição de destino, no caso de um MIG regional.
    2. Ele coloca as novas VMs no estado de execução.
    3. Ela suspende ou interrompe as novas VMs após o atraso inicial.
  • Quando você ou o escalonador automático diminui o tamanho de destino do MIG, ele não interrompe ou suspende automaticamente as VMs em execução, mas as exclui.

Atraso inicial

Para garantir que a VM seja inicializada corretamente, especifique o atraso inicial na política de espera. O atraso inicial é o tempo que as VMs aguardam antes de serem interrompidas ou suspensas depois de serem criadas. Isso dá tempo ao script de inicialização para ser concluído.

O atraso inicial ocorre nestes casos:

  • Uma nova VM é criada com o estado de destino pretendido de SUSPENDED ou TERMINATED.
  • Uma instância atual no estado RUNNING está suspensa ou interrompida.

Em ambos os casos, a instância tem permissão para ser inicializada antes de ser suspensa ou interrompida.

Quando você quiser usar o pool em espera para acelerar o escalonamento horizontal do MIG, é recomendável medir o tempo necessário para a inicialização do aplicativo no tipo de máquina selecionado para garantir que seja suficiente para os que o aplicativo esteja totalmente pronto antes da suspensão ou interrupção. Caso contrário, retomar ou iniciar VMs do pool em espera pode levar mais tempo do que a criação de VMs do zero.

Status de destino para VMs em MIGs

Os MIGs têm uma API declarativa. Isso significa que você declara o status de destino para as VMs no MIG, e a solicitação de API é bem-sucedida quando o status de destino é salvo. Em seguida, o MIG executa as operações necessárias para alcançar o status de destino. É possível verificar a ação atual e o status atual de todas as VMs usando a API.

A suspensão e a interrupção de VMs em um MIG funcionam da mesma maneira declarativa. Quando você envia uma solicitação para suspender ou interromper VMs, o MIG armazena as informações sobre o status de destino de cada VM e inicia as operações necessárias para alcançá-lo.

Ao listar VMs gerenciadas em um MIG, é possível ver o campo targetStatus. Ele descreve o status final de uma VM, quando o MIG está estável. O status pode ter um dos seguintes valores:

  • RUNNING
  • STOPPED
  • SUSPENDED

As VMs em um MIG podem ter os mesmos status de ciclo de vida de VMs únicas. Veja a seguir exemplos de possíveis operações em um MIG e os valores associados do campo targetStatus:

  • Crie a nova VM e suspenda-a após a inicialização.
    • Status de destino da VM: SUSPENDED.
  • Retome uma VM suspensa anteriormente.
    • Status do destino da VM: RUNNING
  • Interrompa uma VM que estava em execução.
    • Status do destino da VM: STOPPED
  • Inicie uma VM interrompida anteriormente.
    • Status do destino da VM: RUNNING

Limitações

  • As seguintes limitações para suspender VMs independentes também se aplicam à suspensão de VMs em um MIG:
    • Não é possível suspender uma instância que usa uma GPU.
    • Não é possível suspender uma instância do Bare Metal.
    • Não é possível suspender uma instância usando os processos padrão integrados ao ambiente convidado. Não há comandos disponíveis, como o systemctl suspend no Ubuntu 16.04 e versões posteriores. O sinal de convidado é ignorado.
    • A instância só pode ser suspensa por até 60 dias antes que a VM seja interrompida automaticamente.
    • Não é possível suspender instâncias com mais de 208 GB de memória.
    • É possível suspender instâncias preemptivas, mas elas podem ser encerradas antes de serem suspensas.
    • Não é possível suspender uma VM confidencial.
    • Não é possível suspender uma VM que tenha discos protegidos por CSEK anexados.
  • Em um MIG regional com o formato de distribuição de destino EVEN e a redistribuição de instâncias ativados, não é possível suspender, interromper, retomar ou iniciar VMs específicas no grupo. Para gerenciar um pool em espera, defina os tamanhos de destino dos pools suspensos e interrompidos.
  • Não é possível usar o modo de pool de escalonamento horizontal se você tiver configurado um segundo modelo de instância para atualização canário no MIG.
  • Não é possível suspender ou interromper VMs em um MIG se você desativar os reparos nele.
  • A instância só pode ser suspensa por até 60 dias antes que a VM seja interrompida automaticamente.

Preços

Cada VM interrompida e suspensa é cobrada pelos seguintes itens:

  • Qualquer uso de disco permanente para o disco de inicialização e quaisquer discos adicionais anexados à VM. Para mais informações, consulte preços do Persistent Disk.
  • Quaisquer IPs estáticos anexados à VM. Para mais informações, consulte preços do IP.
  • No caso de VMs suspensas, a memória da VM e o estado do dispositivo. Para mais informações, consulte preços de instâncias de VM.

A seguir