Como usar várias políticas

Ao criar um escalonador automático com várias políticas, ele é escalonado com base na política que fornece o maior número de instâncias de máquina virtual (VM) no grupo de instâncias gerenciadas (MIG). Isso garante que sempre haja VMs suficientes para processar as cargas de trabalho do aplicativo e que você consiga escalonar os aplicativos com vários gargalos possíveis.

Para saber mais sobre os diferentes tipos de políticas de escalonamento automático, consulte Políticas.

Antes de começar

Como várias políticas são administradas no autoescalador

No escalonador automático, várias políticas são administradas usando o cálculo do número recomendado de VMs para cada política. Depois, é escolhida a política que resulta no maior número de VMs no MIG.

Um escalonador automático é capaz de lidar com uma política por tipo de métrica, exceto no caso de métricas do Cloud Monitoring e de programações de escalonamento (visualização). É possível escolher até cinco políticas para as métricas do Cloud Monitoring e criar até 128 programações por MIG. Por exemplo, é possível criar um escalonador automático que use até 1 política de utilização de CPU, até 1 política de balanceamento de carga, até 5 políticas de métrica personalizada e até 128 programações de escalonamento.

Por exemplo, é possível definir um escalonador automático com todas as definições de política a seguir:

  • cpuUtilization com meta de 0,8
  • loadBalancingUtilization com meta de 0,6
  • customMetricUtilization para metric1 com meta de 1.000
  • customMetricUtilization para metric2 com meta de 2.000
  • scalingSchedules
    • Um mínimo de seis VMs por sábado e domingo às 0h por 24 horas
    • um mínimo de 15 VMs de segundas a sextas-feiras às 9h por 8 horas

Para essas políticas, suponha que o escalonador automático avalie os seguintes valores médios de utilização para um MIG com 10 VMs no momento da medição:

  • 0,5 para utilização da CPU
  • 0,4 para utilização do balanceamento de carga
  • 1.100 para metric1
  • 2.700 para metric2

Com esses valores, o escalonador automático calcula o número recomendado de VMs com base em cada política:

  • 7 VMs baseadas na utilização da CPU
  • 7 VMs baseadas na utilização do balanceamento de carga
  • 11 VMs baseadas em metric1
  • 14 VMs baseadas em metric2
  • 6 VMs por sábado e domingo durante todo o dia com base na primeira programação de escalonamento
  • 15 VMs de segunda a sexta-feira, das 9h às 17h, com base na segunda programação de escalonamento

O escalonador automático escolhe a política que resulta no maior número de VMs no MIG e define o tamanho recomendado do MIG para esse valor. Neste caso, o escalonador automático redimensionará o MIG para 15 VMs se a segunda programação estiver ativa naquele momento. Caso contrário, o redimensionamento será para 14 VMs.

Criar um autoescalador com várias políticas

A criação de um escalonador automático com várias políticas é um pouco diferente se você estiver usando o Console do Cloud, a ferramenta gcloud ou a API Compute Engine.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique no nome de um MIG na lista. Em seguida, clique em Editar grupo.

  3. Na página de edição, em Modo de escalonamento automático, ative o escalonamento automático selecionando Escalonamento automático no menu suspenso.

  4. Para cada Política de escalonamento automático com base em métricas que você quer adicionar, em Política de escalonamento automático, clique em Adicionar nova métrica.

    • Para criar uma política de escalonamento automático com base na utilização média da CPU, em Tipo de métrica, selecione Utilização da CPU no menu suspenso. Em seguida, insira uma utilização de CPU de destino e clique em Concluído. Para mais informações, consulte Como fazer o escalonamento baseado na utilização da CPU.
    • Para criar uma política de escalonamento automático com base na capacidade de exibição do balanceamento de carga HTTP, em Tipo de métrica, selecione Utilização de balanceamento de carga HTTP no menu suspenso. Em seguida, insira uma Utilização de balanceamento de carga HTTP de destino e clique em Concluído. Para mais informações, consulte Escalonamento com base na capacidade de exibição do balanceamento de carga.
    • Para criar uma política de escalonamento automático com base nas métricas do Cloud Monitoring, em Tipo de métrica, selecione Stackdriver Monitoring no menu suspenso. Em seguida, preencha os campos restantes e clique em Concluído. Para mais informações, consulte Como escalonar com base nas métricas do Cloud Monitoring.
  5. Para cada política de escalonamento automático baseada em programação que você quer adicionar, em Política de escalonamento automático, clique em Adicionar nova programação de escalonamento.

    No novo painel Criar uma programação, preencha os campos necessários e clique em Salvar. Em seguida, no painel Como escalonar programações, clique em Concluído. Para mais informações, consulte Como escalonar com base em programações.

  6. Em Período de espera, insira o número de segundos que seu aplicativo precisa para inicializar. Isso permite que as VMs terminem a inicialização antes que o escalonador automático comece a coletar informações de uso delas. Para mais informações, consulte Períodos de espera.

  7. Em Número mínimo de instâncias, insira o número mínimo de VMs desejado para este MIG. O tamanho mínimo desse MIG é sempre mantido, independentemente do tamanho recomendado gerado pelas políticas de escalonamento automático.

  8. Em Número máximo de instâncias, insira o número máximo de VMs desejado para este MIG. O tamanho máximo desse MIG nunca é excedido, independentemente do tamanho recomendado gerado pelas políticas de escalonamento automático.

  9. Opcional: para ativar os controles de redução do escalonamento horizontal, marque a caixa de seleção Ativar controles de redução do escalonamento horizontal. Para mais informações, consulte Controles de redução do escalonamento horizontal.

  10. Clique em Save.

gcloud

Para criar um escalonador automático com várias políticas, transmita as especificações dessas políticas usando as respectivas sinalizações de linha de comando. Se você quiser criar um escalonador automático que inclua programações de escalonamento, use o comando gcloud beta compute instance-groups managed set-autoscaling. Caso contrário, use o comando gcloud compute instance-groups managed set-autoscaling.

Por exemplo, o comando a seguir cria um escalonador automático que usa a utilização da CPU, a capacidade de exibição do balanceamento de carga, duas métricas personalizadas e uma programação de escalonamento. As sinalizações --max-num-replicas e --min-num-replicas restringem o tamanho máximo ou mínimo que o MIG pode alcançar, seja qual for o tamanho recomendado de cada política.

gcloud beta compute instance-groups managed set-autoscaling MIG_NAME \
   --target-cpu-utilization=0.8 \
   --target-load-balancing-utilization=0.6 \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_1,utilization-target=1000.0,utilization-target-type=GAUGE \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
   --set-schedule=workday-capacity \
   --schedule-cron="30 8 * * Mon-Fri" \
   --schedule-duration-sec=30600 \
   --schedule-min-required-replicas=10 \
   --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
   --min-num-replicas=1
   --max-num-replicas=50

Substitua:

  • MIG_NAME: o nome de um MIG.
  • PATH_TO_CUSTOM_METRIC_1 e PATH_TO_CUSTOM_METRIC_2: opcional: os caminhos para as métricas personalizadas com um formato semelhante a custom.cloudmonitoring.googleapis.com/path/to/metric1 e custom.cloudmonitoring.googleapis.com/path/to/metric2. Para mais informações, consulte Métricas personalizadas.

Com exceção das sinalizações de métrica personalizada, você pode transmitir apenas uma sinalização para cada tipo de métrica por comando gcloud. Para métricas personalizadas, é possível fornecer várias métricas personalizadas em um único comando repetindo a sinalização --custom-metric-utilization.

Para mais informações sobre como configurar as sinalizações para cada tipo de política de escalonamento automático, consulte as seguintes páginas:

API

Para criar um escalonador automático, use o método autoscalers.insert para um MIG zonal ou o método regionAutoscalers.insert para um MIG regional. Se você quiser criar um escalonador automático que inclua programações de escalonamento, use o método autoscalers.insert versão Beta para um MIG zonal ou o método regionAutoscalers.insert versão Beta para um MIG regional.

Por exemplo, a solicitação a seguir cria um escalonador automático que usa a utilização da CPU, a capacidade de exibição do balanceamento de carga, duas métricas personalizadas e duas programações de escalonamento. Os campos maxNumReplicas e minNumReplicas restringem o tamanho máximo ou mínimo que o MIG pode alcançar, independentemente do tamanho recomendado de cada política.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT/zones/ZONE/autoscalers

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "customMetricUtilizations":[
      {
        "metric": "PATH_TO_CUSTOM_METRIC_1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "PATH_TO_CUSTOM_METRIC_2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
  },
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/MIG_NAME",
  "name": "MIG_NAME"
}

Substitua:

  • PROJECT: o ID do projeto;
  • ZONE: a zona em que o MIG está localizado;
  • MIG_NAME: o nome de um MIG.
  • PATH_TO_CUSTOM_METRIC_1 e PATH_TO_CUSTOM_METRIC_2: opcional: os caminhos para as métricas personalizadas com um formato semelhante a custom.cloudmonitoring.googleapis.com/path/to/metric1 e custom.cloudmonitoring.googleapis.com/path/to/metric2. Para mais informações, consulte Métricas personalizadas.

Como mostrado neste exemplo, é possível fornecer várias métricas personalizadas e programações de escalonamento na mesma solicitação.

Para mais informações sobre como configurar os campos para cada tipo de política de escalonamento automático, consulte as seguintes páginas: