Criar um MIG com discos com estado


Este documento descreve como criar um grupo de instâncias gerenciadas (MIG) que preserva os dados em discos com um determinado nome de dispositivo para todas as VMs do MIG, mesmo no evento de recriação da VM, por exemplo, quando uma VM no MIG é recuperada, atualizada ou recriada automaticamente. Preservar discos é útil para determinadas cargas de trabalho, por exemplo, para bancos de dados ou aplicativos legados.

Além de preservar discos para todas as VMs no grupo, também é possível configurar um MIG com estado para:

  • É possível adicionar e preservar discos específicos da instância.
  • É possível adicionar e preservar metadados específicos da instância.
  • É possível adicionar e preservar endereços IP.

Para mais informações, consulte a visão geral do MIG com estado.

Você também pode ler sobre outros cenários básicos para criar um MIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerenciadas.
  • 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 da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    Terraform

    Para usar as amostras de Terraform nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. Crie as credenciais de autenticação para sua Conta do Google:

      gcloud auth application-default login

    Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Limitações

Um MIG com configuração com estado (um MIG com estado) tem as seguintes limitações:

  • Não é possível usar o escalonamento automático se o MIG tiver uma configuração com estado.
  • Se você quiser usar atualizações graduais automatizadas, defina o método de substituição como RECREATE.
  • Para MIGs regionais com estado, é necessário desativar a redistribuição proativa (defina o tipo de redistribuição como NONE) para evitar a exclusão de instâncias com estado causadas pela redistribuição automática entre zonas.
  • Se você usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não será possível especificar essas propriedades em nenhuma configuração por instância e ao mesmo tempo na configuração de todas as instâncias do grupo.

Para ver a lista completa de limitações do MIG, que varia de acordo com a configuração usada, consulte Limitações do MIG.

Criar um MIG usando discos com estado

Use o console do Google Cloud, a CLI gcloud, o Terraform ou o REST.

Console

  1. Acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

    As etapas restantes serão exibidas automaticamente no console do Google Cloud.

  2. Clique em Criar grupo de instâncias.
  3. Selecione a opção Novo grupo gerenciado de instâncias (com estado).
  4. Atribua um nome e, se quiser, uma descrição ao grupo de instâncias.
  5. Selecione um modelo de instância para o grupo ou crie um modelo.
  6. No campo Número de instâncias, especifique o número inicial de VMs que você precisa nesse grupo.
  7. Na seção Configuração com estado, em Configuração do grupo, clique no disco que você quer tornar com estado e execute as etapas a seguir.
    1. Na seção Com estado, selecione Sim.
    2. Na lista Na exclusão da instância permanente, escolha se você quer remover o disco ou excluí-lo quando excluir a VM permanentemente.
    3. Para salvar as configurações, clique em Concluído.
  8. Para criar o MIG, clique em Criar.

gcloud

Para especificar os discos de um modelo de instância que precisam ser "com estado" na criação do MIG, use a sinalização --stateful-disk com o comando gcloud compute instance-groups managed create:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Substitua:

  • INSTANCE_GROUP_NAME: o nome do grupo de instâncias gerenciadas que será criado;
  • INSTANCE_TEMPLATE: o nome do modelo de instância que será usado ao criar instâncias; Para um modelo de instância regional, especifique o URL completo ou parcial do modelo. Um exemplo de um URL completo é https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template, e um parcial é projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • SIZE: o número inicial de VMs que você precisa nesse grupo;
  • DEVICE_NAME: o nome de dispositivo de um disco especificado no modelo de instância;
  • DELETE_RULE: um valor que determina o que precisa acontecer em um disco com estado quando uma VM é excluída. As opções disponíveis são estas:

    • never: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a VM dele for excluída.
    • on-permanent-instance-deletion: exclua o disco quando a respectiva instância de VM for excluída permanentemente do grupo. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.

    Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação da VM.

Terraform

Se você ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de inicialização, a rede e outras propriedades de VM que você quer para cada VM no MIG, crie um modelo de instância.

Para especificar os discos do modelo de instância que precisam ser "com estado" na criação do MIG, inclua o bloco stateful_disk. O exemplo a seguir cria um MIG zonal com discos com estado. Para mais informações sobre o recurso usado na amostra, consulte Recurso google_compute_instance_group_manager.

resource "google_compute_instance_group_manager" "default" {
  name               = "igm-stateful-disk-basic"
  zone               = "us-central1-f"
  base_instance_name = "instance"
  target_size        = 1

  version {
    instance_template = google_compute_instance_template.default.id
  }

  stateful_disk {
    device_name = "example-disk"
    delete_rule = "NEVER"
  }

}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

REST

Para especificar os discos do modelo de instância que precisam ser "com estado" na criação do MIG, inclua-os no campo statefulPolicy no corpo da solicitação. Para um MIG zonal, use o método instanceGroupManagers.insert ou, para um MIG regional, use o método regionInstanceGroupManagers.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Substitua:

  • PROJECT: o ID do projeto para a solicitação.
  • ZONE: a zona onde o MIG está localizado, aplicável a um MIG zonal.
    • zones/ZONE por regions/REGION e especifique a região do MIG se ele for regional;
  • NAME: o nome do MIG que será criado;
  • TEMPLATE: o nome do modelo de instância que será usado ao criar instâncias;
  • SIZE: o número inicial de instâncias necessárias nesse grupo;
  • DEVICE_NAME: o nome de dispositivo de um disco especificado no modelo de instância;
  • DELETE_RULE: um valor que determina o que precisa acontecer no disco com estado quando a instância de VM é excluída. As opções disponíveis são estas:

    • never: padrão. Nunca exclua o disco. Remova-o quando a VM dele for excluída.
    • on_permanent_instance_deletion: exclua o disco com estado quando a respectiva VM for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.

    Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação de instâncias.

A seguir