Crie um MIG com escalonamento automático ativado


Este documento descreve como criar um grupo gerenciado de instâncias (MIG) com escalonamento automático que adiciona e remove VMs automaticamente com base na utilização média da CPU em todo o grupo. Por exemplo, se a utilização da CPU do grupo for baixa, o grupo removerá automaticamente as VMs para economizar custos.

Você pode dimensionar automaticamente um MIG com base em vários tipos de sinais de escalonamento automático. Para obter mais informações, consulte a visão geral do escalonador automático .

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 , necessário para criar um grupo de instâncias gerenciadas.
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      Confira mais informações em Set up authentication for a local development environment.

      REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

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 .

Crie um MIG e ative o escalonamento automático

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

Console

  1. No console, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

    As etapas restantes aparecem no console do Google Cloud.

  2. Se você tiver um grupo de instâncias, selecione-o e clique em Editar . Se você não tiver um grupo de instâncias, clique em Criar grupo de instâncias .
  3. Para um novo grupo de instâncias, atribua um nome e escolha um modelo de instância para o grupo de instâncias ou crie um novo .
  4. Se não existir nenhuma configuração de escalonamento automático, em Autoscaling , clique em Configure autoscaling .
  5. Sob Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
  6. Especifique os números mínimo e máximo de instâncias que você deseja que o escalonador automático crie neste grupo.
  7. Na seção Métricas de escalonamento automático , se ainda não existir uma métrica de utilização de CPU existente, adicione uma:
    1. Clique Adicionar métrica .
    2. Sob Tipo de métrica , selecione Utilização da CPU .
    3. Insira a utilização desejada da CPU desejada. Este valor é tratado como uma porcentagem. Por exemplo, para 75% de utilização da CPU, insira 75 .
    4. Em escalonamento automático preditivo , selecione Desligado . Para saber mais sobre o escalonamento automático preditivo e se ele é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .
    5. Clique em Concluído .
  8. Você pode usar o Período de inicialização para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.
  9. Para criar o MIG, clique em Criar .

gcloud

Antes de ativar o escalonamento automático, você deve criar um MIG. Siga as instruções para criar um MIG com VMs confinadas a uma única zona ou criar um MIG com VMs espalhadas por diversas zonas de uma região .

Em seguida, use o subcomando set-autoscaling para ativar o escalonamento automático para o grupo. Por exemplo, o comando a seguir cria um escalonador automático que tem uma meta de utilização da CPU de 60%. Junto com o parâmetro --target-cpu-utilization , o parâmetro --max-num-replicas também é necessário ao criar um escalonador automático.

Opcionalmente, você pode definir --min-num-replicas indicando o número mínimo de VMs que deseja no grupo. Se você não definir o mínimo, por padrão, o MIG definirá esse valor como 2.

Você pode usar o sinalizador --cool-down-period para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

Se desejar, você pode ativar o escalonamento automático preditivo para aumentar a escala antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .

Você pode verificar se o escalonamento automático foi habilitado com sucesso usando o comando instance-groups managed describe , que descreve o MIG correspondente e fornece informações sobre quaisquer recursos de escalonamento automático para esse grupo:

gcloud compute instance-groups managed describe example-managed-instance-group

Terraforma

Antes de ativar o escalonamento automático, você deve criar um MIG. Siga as instruções para criar um MIG com VMs confinadas a uma única zona ou criar um MIG com VMs espalhadas por diversas zonas de uma região .

Para configurar o escalonamento automático em um MIG, você pode usar o recurso google_compute_autoscaler .

O exemplo a seguir configura o escalonamento automático com base na utilização da CPU em um MIG zonal.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

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

DESCANSAR

Antes de ativar o escalonamento automático, você deve criar um MIG com VMs confinadas a uma única zona ou criar um MIG com VMs espalhadas por diversas zonas em uma região .

Se você tiver um MIG zonal, faça uma solicitação POST para o método autoscalers.insert . Se você tiver um MIG regional, use o método regionAutoscalers.insert .

Por exemplo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

O corpo da sua solicitação deve conter os campos name , target e autoscalingPolicy . O campo autoscalingPolicy deve definir o valor cpuUtilization e o valor maxNumReplicas de destino.

Opcionalmente, você pode definir minNumReplicas indicando o número mínimo de VMs que deseja no grupo. Se você não definir o mínimo, por padrão, o MIG definirá esse valor como 2.

Você pode usar o campo coolDownPeriodSec para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

Se desejar, você pode ativar o escalonamento automático preditivo para aumentar a escala antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Dimensionamento baseado em previsões .

Para obter mais informações sobre como ativar o escalonamento automático com base na utilização da CPU, consulte Escalonamento com base na utilização da CPU .

O que vem a seguir