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 Cloud Monitoring; ya que puedes elegir hasta cinco políticas para estas métricas. 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 de métricas personalizadas.

Por ejemplo, si definiste un escalador automático con todas las definiciones de política que se muestran a continuación, 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 métrica2

Con los valores promedio, el escalador automático calcula los cambios recomendados en la cantidad de máquinas virtuales, basada en 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

Puesto 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 Autoscaling (Ajuste de escala automático), selecciona On (Activado) en el menú desplegable para activar el ajuste de escala automático.
  4. En la sección Autoscale based on (Ajuste de escala automático basado en), selecciona Multiple metrics (Métricas múltiples) 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 marcas de línea de comandos respectivas. Con el comando siguiente, 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 marcas siguientes:

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

API


En la API, realiza una solicitud POST con el cuerpo de la solicitud que contenga 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://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/example-managed-instance-group",
  "name": "example-autoscaler"
}