Como usar várias políticas

Crie um autoescalador com várias políticas para que o escalonamento seja feito com base na política que forneça o maior número de máquinas virtuais no grupo. Isso garante que sempre haja máquinas virtuais suficientes para suportar as cargas de trabalho, e que você consiga escalonar aplicativos com vários gargalos possíveis.

Antes de começar

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

No autoescalador, várias políticas são administradas por meio do cálculo do número recomendável de máquinas virtuais para cada política. Depois, é escolhida a política que permite o maior número de máquinas virtuais no grupo.

Um autoescalador é capaz de lidar com uma política por tipo de métrica, exceto no caso de métricas de monitoramento do Stackdriver, em que você pode escolher até cinco políticas para elas. Por exemplo, você pode criar um autoescalador que use uma política de utilização de CPU, uma política de balanceamento de carga e até cinco políticas de métrica personalizadas.

Por exemplo, se você define um autoescalador com estas definições de política:

  • cpuUtilization com meta de 0,8
  • loadBalancingUtilization com meta de 0,6
  • customMetricUtilization para métrica1 com meta de 1.000
  • customMetricUtilization para métrica2 com meta de 2.000

As seguintes médias são calculadas no autoescalador para o grupo de instâncias gerenciadas que contém 10 máquinas virtuais:

  • 0,5 para utilização da CPU
  • 0,4 para utilização do balanceamento de carga
  • 1.100 para métrica1
  • 2.700 for métrica2

Com essas médias, as alterações recomendadas para o número de máquinas virtuais são calculadas no autoescalador, com base em cada política:

  • 7 máquinas virtuais, no caso da utilização da CPU
  • 7 máquinas virtuais, no caso da utilização do balanceamento de carga
  • 11 máquinas virtuais, no caso da métrica1
  • 14 máquinas virtuais, no caso da métrica2

Como há mais de uma política para esse autoescalador, o maior valor recomendado é o escolhido. Nesse caso, o valor é de 14 máquinas e o grupo de instâncias gerenciadas é redimensionado para esse número de máquinas virtuais.

Criar um autoescalador com várias políticas

Dependendo do método utilizado para criar um autoescalador com várias políticas, seja com a ferramenta de linha de comando gcloud ou com a API, o procedimento é um pouco diferente.

Console


  1. Acesse a página Grupos de instâncias.
  2. Selecione o grupo de instâncias na lista e clique em Editar.
  3. Na página de detalhes do grupo de instâncias, em Autoescalador, selecione Ativado no menu suspenso para ativar o escalonamento automático.
  4. Na seção Escalonamento automático baseado em, selecione Métricas diversas no menu suspenso.

    Captura de tela da seleção de várias políticas

  5. Se quiser, preencha os campos de utilização da CPU e do balanceamento de carga.

  6. Para adicionar políticas de métrica personalizada, clique no ícone + na seção Métricas de monitoramento de segmentação e preencha os campos correspondentes a essa política.

    Captura de tela exibindo métricas personalizadas

    Adicione várias políticas de métrica personalizada clicando no ícone +.

gcloud


Para criar um autoescalador com várias políticas, transmita as especificações dessas políticas usando as respectivas sinalizações de linha de comando. O comando a seguir cria um autoescalador que usa a utilização da CPU e duas métricas personalizadas:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --target-cpu-utilization 0.8 \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric1,utilization-target=1000.0,utilization-target-type=GAUGE \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
    --max-num-replicas 50

Com exceção das sinalizações de métrica personalizada, transmita apenas uma sinalização para cada tipo de métrica.

No caso das métricas personalizadas, forneça várias métricas repetindo estas sinalizações:

--custom-metric-utilization metric=METRIC,utilization-target=TARGET,utilization-target-type=TYPE

API


Na API, crie uma solicitação POST e defina o corpo dela com todas as políticas que você quiser:

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/autoscalers

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "customMetricUtilizations":[
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
    }
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/example-managed-instance-group",
  "name": "example-autoscaler"
}
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine