Crie um GIG que use VMs preemptivas


Este documento descreve como criar um grupo de instâncias geridas (GIG) que usa instâncias de máquinas virtuais (VMs) preemptíveis. As VMs preemptivas são úteis se a sua carga de trabalho puder tolerar interrupções e quiser tirar partido da economia de custos associada às VMs preemptivas.

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

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    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.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      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.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Limitações

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

Pode usar um GIG zonal ou regional para criar rapidamente várias VMs preemptivas, o que pode reduzir os custos das VMs nos seus grupos de instâncias geridos. Por exemplo, pode criar um grupo de VMs preemptivas, usá-las para executar uma tarefa de processamento em lote e, em seguida, eliminar o grupo quando a tarefa estiver concluída.

Para criar um grupo de VMs preemptíveis, defina a opção preemptível num modelo de instância e, em seguida, use o modelo para criar o MIG.

Consola

  1. Na consola, aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

    Os passos restantes aparecem na Google Cloud consola.

  2. Clique em Criar modelo de instância.
  3. Preencha as propriedades que quer para o modelo de instância.
  4. Clique em Opções avançadas e expanda a secção Gestão.
  5. Em Política de disponibilidade, na lista Modelo de aprovisionamento de VMs, escolha Spot.
  6. Clique em Criar para criar o modelo.

gcloud

Crie um modelo de instância com o comando instance-templates create. Inclua a flag --preemptible.

gcloud compute instance-templates create INSTANCE_TEMPLATE \
    --preemptible

Terraform

O exemplo seguinte cria um modelo de instância global. Para oferecer a opção de preempção, inclua o bloco scheduling. Para mais informações acerca do recurso usado no exemplo, consulte o 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 os 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 confinadas a uma única zona ou com VMs distribuídas por várias zonas numa região.

O que se segue?