Usa varias políticas

Crea un escalador automático con varias políticas y este escalará según la política que proporcione la mayor cantidad de máquinas virtuales en el grupo. Así se garantiza que siempre haya suficientes máquinas virtuales para controlar las cargas de trabajo de la aplicación y se permite escalar aplicaciones con varios cuellos de botella posibles.

Antes de comenzar

Cómo el escalador automático controla varias políticas

El escalador automático controla varias políticas mediante el cálculo de la cantidad recomendada de máquinas virtuales para cada política y, luego, mediante la selección de la política que deja la mayor cantidad de máquinas virtuales en el grupo.

Un escalador automático puede controlar una política por tipo de métrica, excepto en el caso de las métricas de Stackdriver Monitoring; ya que puedes elegir hasta cinco políticas para las métricas de Stackdriver Monitoring. Por ejemplo, puedes crear un escalador automático que use una política de uso de CPU, una política de balanceo de cargas y hasta cinco políticas métricas personalizadas.

Por ejemplo, si definiste un escalador automático con todas las siguientes definiciones de política, se mostrará lo siguiente:

  • cpuUtilization con un objetivo de 0.8
  • loadBalancingUtilization con un objetivo de 0.6
  • customMetricUtilization para metric1 con un objetivo de 1,000
  • customMetricUtilization para metric2 con un objetivo de 2,000

Y el escalador automático mide los siguientes valores promedio para el grupo de instancias administrado que contiene 10 máquinas virtuales:

  • 0.5 para uso de CPU
  • 0.4 de uso balanceo de cargas
  • 1,100 para metric1
  • 2,700 para metric2

Con los valores promedio, el escalador automático calcula los cambios recomendados en la cantidad de máquinas virtuales, en función de cada política:

  • 7 máquinas virtuales basadas en el uso de CPU
  • 7 máquinas virtuales basadas en el uso del balanceo de cargas
  • 11 máquinas virtuales basadas en metric1
  • 14 máquinas virtuales basadas en metric2

Dado que existe más de una política para este escalador automático, este elige el mayor valor recomendado, en este caso, 14 máquinas, y cambia el tamaño del grupo de instancias administrado a 14 máquinas virtuales.

Crea un escalador automático con varias políticas

La creación de un escalador automático con múltiples políticas es un poco diferente según si usa la herramienta de línea de comandos de gcloud o la API.

Console


  1. Ve a la página Grupo de instancias.
  2. Selecciona el grupo de instancias deseado de la lista y haz clic en Editar.
  3. En la página de detalles del grupo de instancias, en Ajuste de escala automático (Autoscaling), selecciona Activar (On) en el menú desplegable para activar el ajuste de escala automático.
  4. En la sección Ajuste de escala automático basado en (Autoscale based on), selecciona Métricas múltiples (Multiple metrics) en el menú desplegable.

    Captura de pantalla de selección de varias políticas

  5. Completa los campos para el uso de CPU y el balanceo de cargas, si lo deseas.

  6. Si quieres agregar políticas de métricas personalizadas, haz clic en el ícono + en la sección Métricas de supervisión de destino (Target monitoring metrics) y completa los campos para una política de métricas personalizadas.

    Captura de pantalla en la que se muestran métricas personalizadas

    Para agregar varias políticas de métricas personalizadas, haz clic en el ícono +.

gcloud


Si quieres crear un escalador automático con varias políticas, debes pasar varias especificaciones de políticas con las respectivas marcas de línea de comandos. Con el siguiente comando, se crea un escalador automático que usa el uso de CPU y dos 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
    

Con la excepción de las marcas de métrica personalizadas, solo puedes pasar una marca como máximo para cada tipo de métrica.

Para las métricas personalizadas, puedes proporcionar varias métricas personalizadas mediante la repetición de las siguientes marcas:

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

API


Realiza en la API una solicitud POST que contenga en el cuerpo todas las políticas deseadas:

    POST https://compute.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://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/example-managed-instance-group",
      "name": "example-autoscaler"
    }