Usa una política de ajuste de escala automático con varios indicadores


Cuando creas una política de ajuste de escala automático con varios indicadores, el escalador automático escala según el indicador que proporciona la mayor cantidad de instancias de máquinas virtuales (VM) en el grupo de instancias administrado (MIG). Así se garantiza que siempre haya VM suficientes para controlar las cargas de trabajo de tu aplicación y te permite escalar aplicaciones con varios cuellos de botella posibles.

Para obtener más información sobre los diferentes tipos de indicadores de ajuste de escala automático, consulta Política de ajuste de escala automático.

Antes de comenzar

  • Lee acerca de los aspectos básicos del escalador automático.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

De qué manera el escalador automático controla varios indicadores

Un escalador automático controla varios indicadores mediante el cálculo de la cantidad recomendada de VM para cada indicador y, luego, selecciona el indicador que da como resultado la mayor cantidad de VM en el MIG.

Un escalador automático puede controlar una señal por tipo de métrica, excepto en el caso de las métricas de Cloud Monitoring y de las programaciones de escalamiento. Puedes elegir hasta 5 indicadores de ajuste de escala automático para las métricas de Cloud Monitoring y crear hasta 128 programas por MIG. Por ejemplo, puedes crear un escalador automático que use hasta 1 señal de uso de CPU, hasta 1 señal de balanceo de cargas, hasta 5 señales de métrica personalizadas y hasta 128 programas de escalamiento.

Por ejemplo, puedes definir un escalador automático con todos los indicadores siguientes:

  • 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
  • scalingSchedules
    • Un mínimo de 6 VM todos los sábados y domingos a las 12:00 a.m. durante 24 horas
    • Un mínimo de 15 VM todos los lunes a viernes a las 9:00 a.m. durante 8 horas

En este ejemplo, supón que el escalador automático mide los siguientes valores de uso promedio para un MIG que contiene 10 VM al momento de la medición:

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

Con los valores anteriores, el escalador automático calcula la cantidad recomendada de VM según cada indicador:

  • 7 VM según el uso de CPU
  • 7 VM según el uso del balanceo de cargas
  • 11 VM según la metric1
  • 14 VM según la metric2
  • 6 VM todos los sábados y domingos durante todo el día, según la primera programación de escalamiento
  • 15 VM de lunes a viernes, de 9:00 a.m. a 5:00 p.m., en función del segundo programa de escalamiento

El escalador automático selecciona el indicador que genera el mayor número de VM en el MIG y establece el tamaño recomendado del MIG en ese valor. En este caso, el escalador automático cambia el tamaño del MIG a 15 VM si la segunda programación está activa o a 14 VM en caso contrario.

Crea un escalador automático con varios indicadores

Crear un escalador automático con varios indicadores es levemente diferente según si usas la consola de Google Cloud, gcloud CLI o REST.

Console

  1. En la consola de Google Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en el nombre de un MIG de la lista. Luego, haz clic en Editar.

  3. En la página de edición en Modo de ajuste de escala automático, selecciona el botón Activar: agregar y quitar instancias al grupo en el menú desplegable para activar el ajuste de escala automático.

  4. En Cantidad mínima de instancias, ingresa la cantidad mínima de VM que deseas para este MIG. El tamaño mínimo de este MIG siempre se mantiene, independientemente de sus indicadores de ajuste de escala automático.

  5. En Cantidad máxima de instancias, ingresa la cantidad máxima de VM que deseas para este MIG. El tamaño máximo de este MIG nunca se supera independientemente del tamaño recomendado que generan los indicadores de ajuste de escala automático.

  6. Para cada indicador de ajuste de escala automático basado en métricas que desees agregar, en Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.

    • Para crear un indicador de ajuste de escala automático basado en el uso promedio de CPU, en Tipo de indicador, selecciona Uso de CPU en el menú desplegable. Luego, ingresa un Uso de CPU objetivo y haz clic en Listo. Para obtener más información, consulta la sección sobre cómo ajustar la escala en función del uso de CPU.
    • Para crear un indicador de ajuste de escala automático basado en la capacidad de entrega de balanceo de cargas HTTP, en Tipo de indicador, selecciona Uso del balanceo de cargas HTTP en el menú desplegable. Luego, ingresa un Uso objetivo de balanceo de cargas HTTP y haz clic en Listo. Para obtener más información, consulta Escalamiento según la capacidad de entrega del balanceo de cargas.
    • Para crear un indicador de ajuste de escala automático basado en las métricas de Cloud Monitoring, en Tipo de indicador, selecciona Métrica de Cloud Monitoring en el menú desplegable. Luego, completa los campos restantes y haz clic en Listo. Para obtener más información, consulta la página Escalamiento basado en las métricas de Cloud Monitoring.
  7. Para cada señal de ajuste de escala automático basada en programas que desees agregar, expande la sección Ajuste de escala automático de los programas, haz clic en Administrar programas, luego haz clic en Crear programación.

  8. En el panel nuevo Crea un programa de escalamiento, completa los campos obligatorios y haz clic en Guardar. Luego, en el panel Programas de escalamiento, haz clic en Listo. Para obtener más información, consulta Escala según los programas.

  9. En Período de inicialización, ingresa la cantidad de segundos que la aplicación necesita para inicializarse. Esto permite que tus VM terminen de inicializarse antes de que el escalador automático considere sus datos de uso de manera confiable. Para obtener más información, consulta Período de inicialización.

  10. Opcional: Para habilitar los controles de reducción de escala, haz clic en Controles de reducción de escala y, luego, selecciona la casilla de verificación Habilitar controles de reducción de escala. Para obtener más información, consulta los controles de reducción de escala.

  11. Haz clic en Guardar.

gcloud

Para crear un escalador automático con varios indicadores, usa el comando set-autoscaling. Pasa varias especificaciones de indicadores usando sus respectivas marcas de línea de comandos.

Por ejemplo, el siguiente comando crea un escalador automático que usa el uso de CPU, capacidad de entrega de balanceo de cargas, dos métricas personalizadas y una programación de escalamiento. Las marcas --max-num-replicas y --min-num-replicas restringen el tamaño que puede tener el 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

Reemplaza lo siguiente:

  • MIG_NAME: Es el nombre de un MIG.
  • PATH_TO_CUSTOM_METRIC_1 y PATH_TO_CUSTOM_METRIC_2: Opcional: las rutas de acceso a métricas personalizadas con un formato similar a custom.cloudmonitoring.googleapis.com/path/to/metric1 y custom.cloudmonitoring.googleapis.com/path/to/metric2. Para obtener más información, consulta Métricas personalizadas.

Con la excepción de las marcas de métricas personalizadas, solo puedes pasar una marca como máximo para cada tipo de métrica por comando gcloud. En el caso de las métricas personalizadas, puedes proporcionar varias métricas personalizadas en un solo comando si repites la marca --custom-metric-utilization.

Si deseas obtener más información sobre cómo configurar las marcas para cada tipo de indicador de ajuste de escala automático, consulta las siguientes páginas:

REST

A fin de crear un escalador automático, usa el método autoscalers.insert para un MIG zonal o el método regionAutoscalers.insert para un MIG regional.

Por ejemplo, la siguiente solicitud crea un escalador automático que usa el uso de CPU, la capacidad de entrega del balanceo de cargas, dos métricas personalizadas y dos programaciones de escalamiento. Los campos maxNumReplicas y minNumReplicas restringen el tamaño que puede tener el 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"
}

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • ZONE: Es la zona en la que se encuentra el MIG.
  • MIG_NAME: Es el nombre de un MIG.
  • PATH_TO_CUSTOM_METRIC_1 y PATH_TO_CUSTOM_METRIC_2: Opcional: las rutas de acceso a métricas personalizadas con un formato similar a custom.cloudmonitoring.googleapis.com/path/to/metric1 y custom.cloudmonitoring.googleapis.com/path/to/metric2. Para obtener más información, consulta Métricas personalizadas.

Como se muestra en este ejemplo, puedes proporcionar varias métricas personalizadas y programas de escalamiento en la misma solicitud.

Si quieres obtener más información sobre cómo configurar los campos para cada tipo de indicador de ajuste de escala automático, consulta las siguientes páginas: