Crie um MIG com discos com estado

Este documento descreve como criar um grupo de instâncias geridas (GIG) que preserva os dados em discos com um determinado nome de dispositivo para todas as VMs do GIG, mesmo no caso de recriação de VMs, por exemplo, quando uma VM no GIG é reparada automaticamente, atualizada ou recriada. A preservação de discos é útil para determinadas cargas de trabalho, por exemplo, para bases de dados ou aplicações antigas.

Além de preservar os discos para todas as VMs no grupo, também pode configurar um MIG com estado para o seguinte:

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

Para mais informações, consulte a vista geral do MIG com estado.

Também pode ler acerca de outros cenários básicos para criar um GIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerido.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    Terraform

    Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.

      Create local authentication credentials for your user account:

      gcloud auth application-default login

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para mais informações, consulte Set up authentication for a local development environment.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Limitações

Um MIG com uma configuração com estado, ou seja, um MIG com estado, tem as seguintes limitações:

  • Não pode usar o dimensionamento automático se o MIG tiver uma configuração com estado.
  • Se quiser usar atualizações contínuas automáticas, tem de definir o método de substituição como RECREATE.
  • Para os MIGs regionais com estado, tem de desativar a redistribuição proativa (defina o tipo de redistribuição como NONE) para impedir a eliminação de instâncias com estado pela redistribuição automática entre zonas.
  • Se usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não pode 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 consoante a configuração que usa, consulte o artigo Limitações do MIG.

Crie um MIG com discos com estado

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

Consola

  1. Aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

    Os passos restantes aparecem na Trusted Cloud consola.

  2. Clique em Criar grupo de instâncias.
  3. Selecione a opção Novo grupo de instâncias gerido (com estado).
  4. Atribua um nome e, opcionalmente, uma descrição ao grupo de instâncias.
  5. Escolha um modelo de instância para o grupo de instâncias ou crie um novo.
  6. No campo Número de instâncias, especifique o número inicial de VMs de que precisa neste grupo.
  7. Na secção Configuração com estado, em Configuração do grupo, clique no disco que quer tornar com estado e, de seguida, siga estes passos.
    1. Na secção Com estado, selecione Sim.
    2. Na lista Na eliminação permanente da instância, escolha se quer desanexar o disco ou eliminar o disco quando eliminar permanentemente a VM.
    3. Para guardar as definições, clique em Concluído.
  8. Para criar o MIG, clique em Criar.

gcloud

Para especificar que discos do modelo de instância devem ter estado no momento da criação do MIG, use a flag --stateful-disk com o comando gcloud compute instance-groups managed create:

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

Substitua o seguinte:

  • INSTANCE_GROUP_NAME: o nome do grupo de instâncias gerido a criar.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que quer usar para criar VMs no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SIZE: o número inicial de VMs de que precisa neste grupo.
  • DEVICE_NAME: o nome do dispositivo de um disco especificado no modelo de instância.
  • DELETE_RULE: um valor que determina o que deve acontecer a um disco com estado quando uma VM é eliminada. As opções disponíveis são:

    • never: (predefinição.) Nunca elimine o disco. Em vez disso, desassocie o disco quando a respetiva VM for eliminada.
    • on-permanent-instance-deletion: elimine o disco quando a respetiva instância de VM for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.

    Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de VMs.

Terraform

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

Para especificar que discos do modelo de instância devem ter estado no momento da criação do MIG, inclua o bloco stateful_disk. O exemplo seguinte cria um MIG zonal com discos com estado. Para mais informações sobre o recurso usado no exemplo, consulte o 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 os comandos básicos do Terraform.

REST

Para especificar que discos do modelo de instância devem ter estado no momento da criação do MIG, inclua-os no campo statefulPolicy no corpo do pedido. Para um GIG zonal, use o método instanceGroupManagers.insert ou, para um GIG regional, use o método regionInstanceGroupManagers.insert.

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

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "INSTANCE_TEMPLATE_URL"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Substitua o seguinte:

  • PROJECT: o ID do projeto para o pedido.
  • ZONE: A zona onde o GIG está localizado (aplica-se a um GIG zonal).
    • Para um MIG regional, substitua zones/ZONE por regions/REGION e especifique a região do MIG.
  • NAME: o nome do MIG a criar.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que quer usar para criar VMs no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SIZE: o número inicial de instâncias de que precisa neste grupo.
  • DEVICE_NAME: o nome do dispositivo de um disco especificado no modelo de instância.
  • DELETE_RULE: um valor que prescreve o que deve acontecer ao disco com estado quando a instância de VM é eliminada. As opções disponíveis são:

    • never: (predefinição.) Nunca elimine o disco; desassocie o disco quando a VM for eliminada.
    • on_permanent_instance_deletion: elimine o disco com estado quando a respetiva VM for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.

    Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de instâncias.

O que se segue?