Administra los escaladores automáticos

Realiza tareas administrativas para tus escaladores automáticos, como crear, describir, actualizar, detener y borrar un escalador automático con las instrucciones que se brindan aquí.

Para obtener más información sobre el ajuste de escala automático de grupos de instancias administrados (MIG), consulta la descripción general.

Antes de comenzar

Crea un escalador automático

La creación de un escalador automático es algo diferente según la política de ajuste de escala automático que desees usar. A fin de obtener instrucciones para crear un escalador automático, consulta estas secciones:

Obtén información sobre un escalador automático

Para obtener más información sobre un escalador automático en particular, o bien confirmar que un escalador automático se creó con éxito, usa la consola, el subcomando gcloud compute instance-groups managed describe o el método get en la API de Compute Engine para un recurso de escalador automático zonal o regional.

Console

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

    Ir a la página Grupos de instancias

  2. Haz clic en el nombre de un MIG de la lista para abrir la página de detalles del grupo.
  3. Haz clic en Detalles para ver la información del grupo, incluida su configuración de ajuste de escala automático.

gcloud

En la herramienta de línea de comandos de gcloud, usa el comando describe:

gcloud beta compute instance-groups managed describe instance-group-name

El comando muestra detalles sobre el escalador automático:

...
autoscaler:
  autoscalingPolicy:
    coolDownPeriodSec: 60
    cpuUtilization:
      utilizationTarget: 0.6
    maxNumReplicas: 20
    minNumReplicas: 10
    mode: 'ON'
    scaleDownControl:
      timeWindowSec: 300
      maxScaledDownReplicas:
        fixed: 3
        calculated: 3
...

API

Para ver el recurso del escalador automático adjunto a un MIG, usa el método instanceGroupManagers.get. Si es un MIG regional, reemplaza zones/zone por regions/region.

GET https://compute.googleapis.com/compute/beta/projects/myproject/zones/zone/instanceGroupManagers/name
200 OK

{
  ...
  "status": {
    ...
    "autoscaler": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-c/autoscalers/example-group"
  },
}

Para recuperar detalles sobre el recurso del escalador automático, usa el método get del escalador automático. Para un escalador automático regional, reemplaza zones/zone por regions/region.

GET https://compute.googleapis.com/compute/beta/projects/myproject/zones/zone/autoscalers/example-autoscaler
200 OK

{
 "kind": "compute#autoscaler",
 "id": "8744945839459481093",
 "creationTimestamp": "2018-09-28T13:02:50.553-07:00",
 "name": "example-group",
 "target": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-c/instanceGroupManagers/example-group",
 "autoscalingPolicy": {
  "minNumReplicas": 10,
  "maxNumReplicas": 20,
  "mode": "ON",
  "scaleDownControl": {
    "timeWindowSec": 60,
    "maxScaledDownReplicas": {
      "calculated": 3,
      "percent": 15
    }
  },
  "coolDownPeriodSec": 60,
  "cpuUtilization": {
   "utilizationTarget": 0.6
  }
 },
 "zone": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-c",
 "selfLink": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-c/autoscalers/example-group",
 "status": "ACTIVE"
}

Actualiza un escalador automático

Para actualizar un escalador automático, usa Google Cloud Console, la herramienta de gcloud o la API de Compute Engine.

Cuando actualizas un escalador automático, es posible que los cambios tarden un tiempo en propagarse y pueden pasar algunos minutos antes de que se refleje la configuración nueva del escalador automático.

console

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

    Ir a la página Grupos de instancias

  2. Haz clic en el nombre de un grupo de instancias administrado de la lista para abrir la página de detalles del grupo.
  3. Haz clic en Editar grupo para ver y actualizar la configuración actual del grupo, incluida la configuración del ajuste de escala automático.
  4. Haz clic en Guardar cuando termines.

gcloud

Usa el comando update-autoscaling

gcloud compute instance-groups managed update-autoscaling name \
        --max-num-replicas max-num ...

A fin de obtener instrucciones para crear un escalador automático, consulta Crea un escalador automático.

API

A fin de actualizar un recurso de escalador automático para un MIG zonal, usa el método patch del escalador automático zonal. Para un MIG regional, usa el método patch de regionAutoscaler. Proporciona un cuerpo de solicitud que contenga la configuración nueva.

PATCH https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/autoscalers/example-autoscaler

{
 "autoscalingPolicy": {
  "maxNumReplicas": 20
 }
}
200 OK

{
 "kind": "compute#operation",
 "id": "4244494732310423322",
 "name": "operation-1556912627871-58800f8216ed7-74ab1720-7d360603",
 "zone": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
 "operationType": "compute.autoscalers.patch",
 "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/autoscalers/example-autoscaler",
 "targetId": "340775527929467142",
 "status": "RUNNING",
 ...
}

Cuando realizas alguna solicitud que modifica datos, se muestra un recurso zoneOperations o regionOperations y puedes consultar la operación para comprobar el estado del cambio.

Desactiva o restringe un escalador automático

Desactiva un escalador automático a fin de evitar de forma temporal que se escale tu MIG o restríngelo para que solo pueda escalarlo verticalmente. Esta característica resulta útil cuando se quieren realizar las siguientes acciones:

  • Investigar las instancias de VM sin interferencias de una reducción de escalamiento.
  • Volver a configurar varias propiedades de tu MIG sin que se activen acciones de escalamiento antes de que la nueva configuración esté completa
  • Mantener la capacidad del MIG para una reversión rápida mientras se redirecciona una carga de trabajo a un MIG nuevo

Si vuelves a habilitar el escalador automático, vuelve de forma automática a su funcionamiento normal.

En Google Cloud Console, la herramienta de gcloud o la API de Compute Engine, establece la siguiente configuración para el mode de un escalador automático:

  • OFF: inhabilita de forma temporal el ajuste de escala automático. Usa este modo para evitar cambios automáticos en el tamaño del MIG. La configuración del ajuste de escala automático permanece intacta para que puedas volver a habilitarla más adelante.
  • ONLY_UP: restringe el ajuste de escala automático para que solo se agreguen instancias de VM nuevas. Usa este modo para que no se pueda reducir el tamaño del grupo, pero sí se puedan aprovisionar VM adicionales en caso de que aumente la carga.
  • ON: habilita todas las operaciones de ajuste de escala automático según su política.

console

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

    Ir a la página Grupos de instancias

  2. Haz clic en el nombre de un MIG de la lista para abrir la página de detalles del grupo.
  3. Haz clic en Editar grupo para ver la configuración actual, incluida la del ajuste de escala automático.
  4. En Ajuste de escala automático, configura el Modo de ajuste de escala automático a fin de inhabilitar o restringir el ajuste de escala automático para el grupo o volver a activar el escalador automático.

gcloud

Usa el comando set-autoscaling con la marca --mode para inhabilitar, restringir o volver a habilitar un escalador automático.

gcloud compute instance-groups managed set-autoscaling name 
--mode mode

Reemplaza lo siguiente:

  • mode:
    • OFF para inhabilitar el escalador automático, pero mantener su configuración
    • ONLY_UP a fin de restringir el escalador automático para que solo se agreguen instancias de VM
    • ON para volver a habilitar todas las actividades del escalador automático de acuerdo con su política

API

A fin de actualizar el modo de un recurso de escalador automático para un MIG, zonal, usa el método patch del escalador automático. Para un MIG regional, usa el método patch de regionAutoscaler. Proporciona un cuerpo de solicitud que incluya la propiedad autoscalingPolicy.mode.

PATCH https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1-f/autoscalers?autoscaler=my-autoscaler

{
  "autoscalingPolicy": {
    "mode":"mode"
  }
}

Reemplaza lo siguiente:

  • mode:
    • OFF para inhabilitar el escalador automático, pero mantener su configuración
    • ONLY_UP a fin de restringir el escalador automático para que solo se agreguen instancias
    • ON para volver a habilitar todas las actividades del escalador automático de acuerdo con su política

Controla la tasa de reducción de escalamiento de un escalador automático (Beta)

Si tus cargas de trabajo tardan mucho en inicializarse, configura los controles de reducción de escalamiento para reducir el riesgo de latencia en la respuesta o interrupciones debido a eventos de reducción de escalamiento abruptos. Específicamente, si normalmente es previsible que haya un aumento repentino de la carga poco después de una disminución, puedes limitar la tasa de reducción de escalamiento para evitar que el escalador automático reduzca el tamaño del MIG en más instancias de VM de lo que puede tolerar tu carga de trabajo.

Configura los controles de reducción de escalamiento

Configura los controles de reducción de escalamiento con la herramienta de gcloud o la API de Compute Engine. La configuración de los controles de reducción de escalamiento es opcional. De forma predeterminada, los controles de reducción de escalamiento no están configurados. Aun así, el escalador automático utiliza un mecanismo de estabilización predeterminado incluso si no configuras estos controles. Es decir, mantiene el tamaño recomendado en el nivel necesario para manejar la carga máxima observada durante el período de estabilización de los últimos 10 minutos.

gcloud

Puedes configurar controles de reducción de escalamiento durante la creación o actualización de un escalador automático.

Configura controles de reducción de escalamiento durante la creación de un escalador automático

Para configurar los controles de reducción de escalamiento durante la creación de un escalador automático para un MIG, usa la marca --scale-in-control con el comando gcloud beta compute instance-groups managed set-autoscaling. Por ejemplo, usa el siguiente comando a fin de configurar el ajuste de escala automático para un example-group:

gcloud beta compute instance-groups managed set-autoscaling instance-group-name \
    --target-cpu-utilization 0.6 \
    --max-num-replicas 50 \
    --scale-in-control max-scaled-in-replicas=max-scale-in-replicas,time-window=time-window

Configura controles de reducción de escalamiento durante la actualización de un escalador automático

Para actualizar los controles de reducción de escalamiento del escalador automático existente de un MIG, usa la marca --scale-in-control con el comando gcloud beta compute instance-groups managed update-autoscaling. Por ejemplo, usa el siguiente comando para establecer controles de reducción de escalamiento en una configuración de ajuste de escala automático existente para example-group:

gcloud beta compute instance-groups managed update-autoscaling instance-group-name \
    --scale-in-control max-scaled-in-replicas=max-scale-in-replicas,time-window=time-window

Reemplaza lo siguiente:

  • instance-group-name: El nombre del MIG que se actualizará.
  • max-scale-in-replicas: La cantidad máxima de VM que se pueden restar del tamaño máximo, que se toma del período anterior especificado La cantidad de instancias de VM que especifiques podrá retirarse del grupo en una sola acción de escalamiento, por lo que es importante que tu servicio pueda funcionar correctamente incluso si pierde todas estas VM de una vez. Puedes especificar una cantidad de VM o un porcentaje. Usa el signo % para los porcentajes. por ejemplo: 50%.
  • time-window: El margen de tiempo anterior que se tomará en cuenta para determinar el tamaño máximo El ajuste de escala automático tiene un límite de reducción de réplicas que se calcula según el valor máximo observado durante este margen de tiempo anterior. Especifica este valor en segundos dentro de un intervalo de [60, 3600].

Por ejemplo, supongamos que estableciste el margen de tiempo en 1800 segundos (30 minutos). Cuando se calcula el tamaño recomendado actualmente para el MIG, el escalador automático toma el tamaño máximo de los últimos 30 minutos (por ejemplo, 100 VM) y el valor de max-scaled-in-replicas (por ejemplo, 10 VM), y determina que el tamaño recomendado actualmente para el grupo no puede ser inferior a 90 VM (100-10).

API

Para establecer controles de reducción de escalamiento, debes configurar los campos maxScaledDownReplicas y timeWindowSec dentro de la estructura autoscalingPolicy.scaleDownControl en un recurso de escalador automático zonal o regional. Estos campos no tienen valores predeterminados, así que deberás proporcionar el valor que te parezca adecuado para cada uno.

Puedes configurar controles de reducción de escala durante la creación o actualización de un escalador automático.

Configura controles de reducción de escalamiento durante la creación de un escalador automático

Para un MIG zonal, usa el método autoscaler insert zonal. Para un MIG regional, usa el método regionAutoscalers insert.

POST
https://www.googleapis.com/compute/beta/projects/project-id/regions/region/autoscalers

{
  "name": "name",
  "target": "https://compute.googleapis.com/compute/v1/projects/myproject/regions/region/instanceGroupManagers/instance-group-name",
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleDownControl": {
      "maxScaledDownReplicas": {
           "fixed": max-scale-down-replicas
      },
      "timeWindowSec": time-window
    }
  }
}

Para obtener más información a fin de crear un escalador automático, consulta los siguientes artículos:

Configura controles de reducción de escalamiento durante la actualización de un escalador automático

Para un MIG zonal, usa el método autoscaler patch zonal. Para un MIG regional, usa el método regionAutoscalers patch.

PATCH
https://www.googleapis.com/compute/beta/projects/project-id/regions/region/autoscalers?autoscaler=name

{
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleDownControl": {
      "maxScaledDownReplicas": {
           "fixed": max-scale-down-replicas
      },
      "timeWindowSec": time-window
    }
  }
}

Reemplaza lo siguiente:

  • name: El nombre del escalador automático que se creará. Puedes asignar un nombre al escalador automático en función del MIG que lo usará o asignarle otro nombre.
  • instance-group-name: El nombre del MIG al que se agregará el escalador automático. Si es un MIG regional, reemplaza zones/zone por regions/region.
  • max-scale-down-replicas: La cantidad máxima de VM que se pueden restar del tamaño máximo recomendado objetivo, que se toma del margen de tiempo anterior especificado. La cantidad de instancias de VM que especifiques podrá retirarse del grupo en una sola acción de escalamiento, por lo que es importante que tu servicio pueda funcionar correctamente incluso si pierde todas estas VM de una vez. Puedes especificar una cantidad de VM o un porcentaje. Usa maxScaledDownReplicas.percentage para especificar un valor porcentual.
  • time-window: El margen de tiempo anterior del que se toma el tamaño máximo recomendado El ajuste de escala automático tiene un límite de reducción de réplicas que se calcula según el valor máximo observado durante este margen de tiempo anterior. Especifica este valor en segundos dentro de un intervalo de [60, 3600]; por ejemplo: 1800.

Por ejemplo, supongamos que estableciste el período en 1800 segundos (30 minutos). Cuando se calcula el tamaño recomendado actualmente para el MIG, el escalador automático toma el tamaño máximo de los últimos 30 minutos (por ejemplo, 100 VM) y el valor de max-scaled-down-replicas (por ejemplo, 10 VM), y determina que el tamaño recomendado actualmente para el grupo no puede ser inferior a 90 VM (100-10).

Para obtener más información sobre el funcionamiento de los controles de reducción de escala, consulta la Información sobre las decisiones de los escaladores automáticos.

Obtén la configuración actual de los controles de reducción de escala

Para obtener la configuración actual de los controles de reducción de escala, consulta Obtén información sobre un escalador automático.

Quita los controles de reducción de escala

Puedes usar la API de Compute Engine para quitar los controles de reducción de escalamiento, de modo que no haya restricciones sobre el tiempo ni la magnitud de las operaciones relacionadas.

Recuerda que, incluso si no hay controles de reducción de escalamiento, el escalador automático utiliza un mecanismo de estabilización predeterminado. Específicamente, mantiene el tamaño recomendado en el nivel necesario para manejar la carga máxima observada durante el período de estabilización de los últimos 10 minutos.

Para quitar los controles de reducción de escala, usa el método autoscalers.patch y proporciona una configuración vacía para los controles de reducción de escalamiento. Si es un MIG regional, reemplaza zones/zone por regions/region.

PATCH
https://www.googleapis.com/compute/beta/projects/project-id/zones/zone/autoscalers?autoscaler=name

{
  "autoscalingPolicy": {
    "scaleDownControl": null
  }
}

Reemplaza lo siguiente:

  • name: El nombre del escalador automático que se actualizará. Para obtener una lista de los escaladores automáticos existentes y sus MIG objetivo, usa el método aggregatedList zonal o regional del escalador automático.

Borra un escalador automático

Puedes borrar de manera permanente tu recurso de escalador automático mediante Google Cloud Console, la herramienta de gcloud o la API de Compute Engine. Si quieres detener de forma temporal el ajuste de escala automático sin deshacerte del recurso de escalador automático y su configuración, puedes inhabilitarlo.

console

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

    Ir a la página Grupos de instancias

  2. Haz clic en el nombre de un MIG de la lista para abrir la página de detalles del grupo.

  3. Haz clic en Editar grupo para ver la configuración actual, incluida la del ajuste de escala automático.

  4. En Ajuste de escala automático, haz clic en Borrar configuración del ajuste de escala automático para detener el escalador automático y borrar su configuración.

gcloud

Usa el comando stop-autoscaling para detener un escalador automático y borrar su configuración.

gcloud compute instance-groups managed stop-autoscaling name

Cuando detienes un escalador automático, este se borra del MIG. Si deseas reiniciar el escalador automático, debes volver a crearlo con el comando set-autoscaling.

Si borras un MIG con la herramienta de gcloud, también se borran los escaladores automáticos asociados al MIG.

API

Para detener un escalador automático y borrar su configuración, llama al método delete. Si se trata de un MIG regional, reemplaza zones/zone por regions/region.

 DELETE https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/autoscalers/autoscaler-name

Comentarios

Queremos conocer tus casos prácticos, desafíos y comentarios sobre el ajuste de escala automático. Comparte tus comentarios con nuestro equipo en mig-discuss@google.com.

Próximos pasos