Usar uma política de escalabilidade automática com vários sinais

Quando cria uma política de escala automática com vários sinais, o escalador automático faz a escala com base no sinal que fornece o maior número de instâncias de máquinas virtuais (VM) no grupo de instâncias geridas (GIG). Isto garante que existem sempre VMs suficientes para processar as cargas de trabalho da sua aplicação e permite-lhe dimensionar aplicações com vários possíveis gargalos.

Para saber mais acerca dos diferentes tipos de sinais de dimensionamento automático, consulte o artigo Política de dimensionamento automático.

Antes de começar

  • Leia acerca dos princípios básicos do dimensionamento automático.
  • 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.

    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. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

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

Como o escalamento automático processa vários sinais

Um escalador automático processa vários sinais calculando o número recomendado de VMs para cada sinal e, em seguida, escolhendo o sinal que resulta no maior número de VMs no MIG.

Um escalador automático pode processar um sinal por tipo de métrica, exceto no caso das métricas do Cloud Monitoring e dos horários de escalonamento. Pode escolher até 5 sinais de escalamento automático para métricas do Cloud Monitoring e criar até 128 agendamentos por MIG. Por exemplo, pode criar um ajuste automático que use até 1 sinal de utilização da CPU, até 1 sinal de equilíbrio de carga, até 5 sinais de métricas personalizadas e até 128 programações de escalabilidade.

Por exemplo, pode definir um escalador automático com todos os seguintes sinais:

  • cpuUtilization com o objetivo de 0,8
  • loadBalancingUtilization com um alvo de 0,6
  • customMetricUtilization para a métrica1 com um objetivo de 1000
  • customMetricUtilization para a métrica2 com um objetivo de 2000
  • scalingSchedules
    • Um mínimo de 6 VMs todos os sábados e domingos às 00:00 durante 24 horas
    • Um mínimo de 15 VMs todas as segundas a sextas-feiras às 09:00 durante 8 horas

Neste exemplo, suponhamos que o escalador automático mede os seguintes valores de utilização média para um MIG que contém 10 VMs no momento da medição:

  • 0,5 para a utilização da CPU
  • 0,4 de utilização do balanceamento de carga
  • 1100 para metric1
  • 2700 para métrica2

Com base nos valores anteriores, o escalamento automático calcula o número recomendado de VMs com base em cada sinal:

  • 7 VMs com base na utilização da CPU
  • 7 VMs com base na utilização do balanceamento de carga
  • 11 VMs com base na métrica1
  • 14 VMs com base na métrica2
  • 6 VMs todos os sábados e domingos durante todo o dia com base no primeiro horário de escalonamento
  • 15 VMs todas as segundas a sextas-feiras das 09:00 às 17:00 com base no segundo horário de escalabilidade

O dimensionamento automático escolhe o sinal que resulta no maior número de VMs no MIG e define o tamanho recomendado do MIG para esse valor. Neste caso, o escalador automático redimensiona o MIG para 15 VMs se a segunda programação estiver atualmente ativa ou para 14 VMs caso contrário.

Crie um redimensionador automático com vários sinais

A criação de um escalador automático com vários sinais é ligeiramente diferente consoante use a Trusted Cloud consola, a CLI gcloud ou a API REST.

Consola

  1. Na Trusted Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Edit.

  4. Clique em Tamanho do grupo e dimensionamento automático para expandir a secção.

  5. Na lista Modo de dimensionamento automático, certifique-se de que a opção Ativado: adicionar e remover instâncias do grupo está selecionada.

  6. No campo Número mínimo de instâncias, introduza o número mínimo de VMs que quer para este MIG. O tamanho mínimo deste MIG é sempre mantido, independentemente dos respetivos sinais de escalabilidade automática.

  7. No campo Número máximo de instâncias, introduza o número máximo de VMs que quer para este MIG. O tamanho máximo deste MIG nunca é excedido, independentemente do tamanho recomendado gerado pelos respetivos sinais de dimensionamento automático.

  8. Para cada sinal de ajuste automático baseado em métricas que quer adicionar, clique em Adicionar um sinal.

    • Para criar um sinal de ajuste automático com base na utilização média da CPU, na lista Tipo de sinal, selecione Utilização da CPU. Em seguida, introduza uma Utilização da CPU alvo e clique em Concluído. Para mais informações, consulte o artigo Escalar com base na utilização da CPU.
    • Para criar um sinal de escalamento automático com base na capacidade de publicação do balanceamento de carga HTTP, na lista Tipo de sinal, selecione Utilização do balanceamento de carga HTTP. Em seguida, introduza uma utilização do balanceamento de carga HTTP alvo e clique em Concluído. Para mais informações, consulte o artigo Escalamento com base na capacidade de publicação do equilíbrio de carga.
    • Para criar um sinal de dimensionamento automático com base nas métricas do Cloud Monitoring, na lista Tipo de sinal, selecione Métrica do Cloud Monitoring. Em seguida, preencha os restantes campos e clique em Concluído. Para mais informações, consulte o artigo Dimensionamento com base nas métricas do Cloud Monitoring.
  9. Para cada sinal de ajuste de escala automático baseado em horários que quer adicionar, na secção Horários de ajuste de escala automático, clique em Gerir.

    1. Clique em Criar programação.

    2. No painel Criar programação de ajuste de escala, preencha os campos obrigatórios e, de seguida, clique em Guardar.

    3. No painel Programações de dimensionamento, clique em Concluído.

    Para mais informações, consulte o artigo Dimensionamento com base em programações.

  10. Na secção Período de inicialização, introduza o número de segundos que a sua aplicação precisa para inicializar. Este período permite que as suas VMs terminem a inicialização antes de o escalador automático considerar os respetivos dados de utilização fiáveis. Para mais informações, consulte o artigo Período de inicialização.

  11. Opcional: para ativar os controlos de redução, na secção Controlos de redução, selecione a caixa de verificação Ativar controlos de redução. Para mais informações, consulte os controlos de redução

  12. Clique em Guardar.

gcloud

Para criar um redimensionador automático com vários sinais, use o comando set-autoscaling. Transmita várias especificações de sinais através dos respetivos sinalizadores da linha de comandos.

Por exemplo, o comando seguinte cria um escalador automático que usa a utilização da CPU, a capacidade de publicação do balanceamento de carga, duas métricas personalizadas e um horário de escalamento. As flags --max-num-replicas e --min-num-replicas restringem o tamanho máximo ou mínimo do MIG.

gcloud 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 o seguinte:

  • MIG_NAME: o nome de um MIG.
  • PATH_TO_CUSTOM_METRIC_1 e PATH_TO_CUSTOM_METRIC_2: opcional: os caminhos para 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 o artigo Métricas personalizadas.

Com exceção dos indicadores de métricas personalizadas, só pode transmitir um máximo de um indicador para cada tipo de métrica por comando gcloud. Para métricas personalizadas, pode fornecer várias métricas personalizadas num único comando repetindo a flag --custom-metric-utilization.

Para mais informações sobre como configurar as flags para cada tipo de sinal de dimensionamento automático, consulte as seguintes páginas:

REST

Para criar um escalador automático, use o método autoscalers.insert para um GIG zonal ou o método regionAutoscalers.insert para um GIG regional.

Por exemplo, o pedido seguinte cria um escalador automático que usa a utilização da CPU, a capacidade de publicação do balanceamento de carga, duas métricas personalizadas e dois horários de escalonamento. Os campos maxNumReplicas e minNumReplicas restringem o tamanho máximo ou mínimo do MIG.

POST https://compute.googleapis.com/compute/v1/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 o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu 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 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 o artigo Métricas personalizadas.

Conforme mostrado neste exemplo, pode fornecer várias métricas personalizadas e horários de escalonamento no mesmo pedido.

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