Criar um MIG que use VMs preemptivas


Neste documento, você verá como criar um grupo de instâncias gerenciadas (MIG) que usa instâncias de máquina virtual preemptiva (VM). As VMs preemptivas são úteis se a carga de trabalho puder tolerar interrupções e você quiser aproveitar a economia associada às VMs preemptivas.

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

Antes de começar

  • 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

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 modelo de instância com as VMs preemptivas

Use um MIG zonal ou regional para criar rapidamente várias VMs preemptivas, o que pode reduzir os custos das VMs nos grupos de instâncias gerenciadas. Por exemplo, crie um grupo de VMs preemptivas, use-o para executar uma tarefa de processamento em lote e depois exclua-o quando a tarefa estiver concluída.

Para criar um grupo de VMs preemptivas, defina a opção preemptiva em um modelo de instância e depois use o modelo para criar o MIG.

Console

  1. No console, acesse a página Modelos de instância.

    Acesse "Modelos de instância"

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

  2. Clique em Criar modelo de instância.
  3. Insira as propriedades que quiser para o modelo de instância.
  4. Clique em Opções avançadas e abra a seção Gerenciamento.
  5. Em Política de disponibilidade, na lista Modelo de provisionamento de VM, escolha Spot.
  6. Clique em Criar para criar o modelo.

gcloud

Crie um modelo de instância usando o comando instance-templates create. Inclua a sinalização --preemptible.

gcloud compute instance-templates create INSTANCE_TEMPLATE \
    --preemptible

Terraform

O exemplo a seguir cria um modelo de instância global: Para fornecer a opção preemptiva, inclua o bloco scheduling. Para mais informações sobre o recurso usado na amostra, consulte Recurso google_compute_instance_template. Para criar um modelo de instância regional, use o recurso google_compute_region_instance_template.

resource "google_compute_instance_template" "default" {
  name         = "preemptible-template"
  machine_type = "n1-standard-1"
  disk {
    source_image = "debian-cloud/debian-11"
  }
  network_interface {
    network = "default"
  }
  scheduling {
    preemptible       = "true"
    automatic_restart = "false"
  }
}

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

REST

Chame o método instanceTemplates.insert para criar um novo modelo de instância. Inclua a propriedade scheduling.preemptible e defina-a como true.

{
"name": "INSTANCE_TEMPLATE",
"properties": {
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "scheduling":
  {
    "preemptible": true
  },
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      }
    }
  ]
  }
}

Depois de criar o modelo de instância, use-o para criar um MIG.com VMs limitadas a uma única zona ou com VMs espalhadas por várias zonas em uma região.

A seguir