Los grupos de instancias administrados (MIG) ofrecen capacidades de escalado automático que le permiten agregar o eliminar automáticamente instancias de máquinas virtuales (VM) de un MIG en función de los aumentos o disminuciones de la carga. El escalado automático ayuda a que sus aplicaciones manejen con elegancia los aumentos de tráfico y reduzcan los costos cuando la necesidad de recursos es menor. Usted define la política de escalado automático y el escalador automático realiza el escalado automático en función de la carga medida y las opciones que configure.
El escalado automático funciona agregando más máquinas virtuales a su MIG cuando hay más carga (ampliación horizontal) y eliminando máquinas virtuales cuando la necesidad de máquinas virtuales disminuye (ampliación horizontal).
Requisitos previos
El escalador automático utiliza el agente de servicio de Compute Engine para agregar y eliminar instancias en el grupo. Google Cloud crea automáticamente esta cuenta de servicio, así como su política de IAM vinculante a la función de Agente de servicio de Compute Engine, cuando la API de Compute Engine está habilitada .
Si a tu proyecto le falta esta cuenta (por ejemplo, si la has eliminado), puedes agregarla manualmente:
Consola
En la consola de Google Cloud, vaya a la página de IAM .
Haga clic en Conceder acceso .
En el campo Nuevos directores , ingrese
service- PROJECT_NUMBER @compute-system.iam.gserviceaccount.com
.Seleccione la función de Agente de servicio de Compute Engine .
Haga clic en Guardar .
nube de gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
Fundamentos
El ajuste de escala automático utiliza los siguientes conceptos y servicios fundamentales.
Grupos de instancias administrados
El escalado automático es una característica de los grupos de instancias administrados (MIG) . Un grupo de instancias administrado es una colección de instancias de máquinas virtuales (VM) que se crean a partir de una plantilla de instancias común. Un escalador automático agrega o elimina instancias de un grupo de instancias administrado según la política de escalado automático del grupo. Aunque Compute Engine tiene grupos de instancias administrados y no administrados, solo los grupos de instancias administrados se pueden usar con un escalador automático.
Para comprender la diferencia entre un grupo de instancias administrado y un grupo de instancias no administrado, consulte Grupos de instancias .
Para aprender cómo crear un grupo de instancias administrado, consulte Creación de MIG .
Política de escala automática
Cuando define una política de escalado automático para su grupo, especifica una o más señales que el escalador automático utiliza para escalar el grupo. Cuando configura varias señales en una política, el escalador automático calcula la cantidad recomendada de máquinas virtuales para cada señal y establece el tamaño recomendado de su grupo en el número más grande.
Una política de escalado automático siempre debe tener al menos una señal de escalado. Cuando activa el escalado automático en un MIG, de forma predeterminada, el escalador automático agrega una señal de utilización de la CPU. Puede editar esta señal predeterminada o eliminar y agregar otras señales en la política.
Las siguientes secciones brindan una descripción general de las señales basadas en métricas de utilización objetivo y señales basadas en cronogramas.
Métricas de utilización objetivo
Puedes escalar automáticamente en función de una o más de las siguientes métricas que reflejan la carga del grupo de instancias:
- Utilización promedio de CPU
- Capacidad de servicio de equilibrio de carga HTTP
- Métricas de monitoreo de la nube
El escalador automático recopila continuamente información de uso en función de la métrica de utilización seleccionada, compara la utilización real con la utilización objetivo deseada y utiliza esta información para determinar si el grupo necesita eliminar instancias (aumentar horizontalmente) o agregar instancias (aumentar horizontalmente).
El nivel de utilización objetivo es el nivel en el que desea mantener sus instancias de máquina virtual (VM). Por ejemplo, si escala según la utilización de la CPU, puede establecer su nivel de utilización objetivo en 75 % y el escalador automático mantendrá la utilización de CPU del grupo de instancias especificado en o cerca del 75 %. El nivel de utilización de cada métrica se interpreta de forma diferente según la política de escalado automático.
Para obtener más información sobre el escalado basado en métricas de utilización objetivo, consulte las siguientes páginas:
- Escalado basado en la utilización de la CPU
- Escalado basado en la capacidad de servicio de equilibrio de carga
- Escalado basado en métricas de Cloud Monitoring
Horarios
Puede utilizar el ajuste de escala automático basado en programación para asignar capacidad para cargas anticipadas. Puedes tener hasta 128 programas de escalado por grupo de instancias. Para cada programa de escalado, especifique lo siguiente:
- Capacidad : instancias de VM mínimas requeridas
- Programación : hora de inicio, duración y recurrencia (por ejemplo, una vez, diaria, semanal o mensual)
Cada programa de escalado está activo desde su hora de inicio y durante la duración configurada. Durante este tiempo, el escalador automático escala el grupo para que tenga al menos tantas instancias como se define en el programa de escalado.
Para obtener más información, consulte Escalado basado en programaciones .
Período de inicialización
El período de inicialización, anteriormente conocido como período de recuperación, es el tiempo que tardan las aplicaciones en inicializarse en sus instancias de VM. Mientras una aplicación se inicializa en una instancia, es posible que los datos de uso de la instancia no reflejen circunstancias normales. Por lo tanto, el escalador automático utiliza el período de inicialización para escalar decisiones de las siguientes maneras:
- Para las decisiones de ampliación, el escalador automático considera los datos de uso de todas las instancias, incluso una instancia que aún se encuentra dentro de su período de inicialización. El escalador automático recomienda eliminar instancias si la utilización promedio de todas las instancias es menor que la utilización objetivo.
- Para las decisiones de escalamiento horizontal, el escalador automático ignora los datos de uso de las instancias que aún se encuentran en su período de inicialización.
- Si habilita el modo predictivo , el período de inicialización informa al escalador automático predictivo que se amplíe más antes de la carga anticipada, de modo que las aplicaciones se inicialicen cuando llegue la carga. Por ejemplo, si establece el período de inicialización en 300 segundos, el escalador automático predictivo crea máquinas virtuales 5 minutos antes de la carga prevista.
De forma predeterminada, el período de inicialización es de 60 segundos. Los tiempos de inicialización reales varían debido a numerosos factores. Le recomendamos que pruebe cuánto tiempo tarda su aplicación en inicializarse. Para hacer esto, cree una instancia y cronometre el proceso de inicio desde que la instancia pasa a estar RUNNING
hasta que la aplicación esté lista.
Si establece un valor de período de inicialización que es significativamente más largo que el tiempo que tarda una instancia en inicializarse, entonces su escalador automático podría ignorar los datos de utilización legítimos y podría subestimar el tamaño requerido de su grupo, lo que provocaría un retraso en el escalamiento horizontal .
Periodo de estabilización
Las señales de escalado automático, como la utilización de la CPU, no son muy estables y pueden cambiar rápidamente. A medida que la carga sube y baja, el escalador automático necesita estabilizar la señal para evitar la eliminación y creación continua de VM. El escalador automático estabiliza una señal manteniendo suficiente capacidad de VM para atender la carga máxima que se observa durante el período de estabilización .
El período de estabilización es igual a 10 minutos o al período de inicialización que usted establezca, el que sea mayor. El período de estabilización se utiliza solo para decisiones de ampliación cuando el escalador automático tiene que eliminar máquinas virtuales.
Cuando la carga disminuye, el escalador automático no elimina las máquinas virtuales inmediatamente. El escalador automático sigue monitoreando la capacidad necesaria durante el período de estabilización y elimina las máquinas virtuales solo cuando hay capacidad suficiente para satisfacer la carga máxima. Esto puede parecer un retraso en el escalado, pero es una característica incorporada del escalado automático.
Si su aplicación tarda más de 10 minutos en inicializarse en una nueva máquina virtual, el escalador automático utiliza el período de inicialización en lugar de los 10 minutos predeterminados de estabilización para esperar hasta que se pueda eliminar la máquina virtual. Esto garantiza que la decisión del escalador automático de eliminar la máquina virtual tenga en cuenta cuánto tiempo lleva recuperar la capacidad de servicio.
Cuando la carga aumenta, el escalador automático no utiliza el período de estabilización e inmediatamente crea tantas máquinas virtuales como sean necesarias para satisfacer la demanda.
Modo de escala automática
Si necesita investigar o configurar su grupo sin interferencia de las operaciones del escalador automático, puede desactivar o restringir temporalmente las actividades de escalado automático . La configuración del escalador automático persiste mientras está apagado o restringido, y todas las actividades de escalado automático se reanudan cuando lo enciende nuevamente o levanta la restricción.
Escalado automático predictivo
Si habilita el escalado automático predictivo para optimizar la disponibilidad de su MIG, el escalador automático pronostica la carga futura basándose en datos históricos y escala un MIG antes de la carga prevista, de modo que las nuevas instancias estén listas para funcionar cuando llegue la carga.
El escalado automático predictivo funciona mejor si su carga de trabajo cumple con los siguientes criterios:
- Su aplicación tarda mucho en inicializarse; por ejemplo, si configura un período de inicialización de más de 2 minutos.
- Su carga de trabajo varía de manera predecible con ciclos diarios o semanales.
Para obtener más información, consulte Escalado basado en predicciones .
Controles de escala
Si sus cargas de trabajo tardan muchos minutos en inicializarse (por ejemplo, debido a tareas de instalación prolongadas), puede reducir el riesgo de latencia de respuesta causada por eventos de escalamiento abrupto configurando controles de escalamiento horizontal . Específicamente, si espera que se produzcan picos de carga poco después de las disminuciones, puede limitar la tasa de escalamiento horizontal para evitar que el escalado automático reduzca el tamaño de un MIG en más instancias de VM de las que su carga de trabajo puede tolerar.
No es necesario configurar controles de escalamiento horizontal si su aplicación se inicializa lo suficientemente rápido como para detectar picos de carga en el escalamiento horizontal.
Para configurar controles de escalamiento horizontal, establezca las siguientes propiedades en su política de escalamiento automático.
Reducción máxima permitida . La cantidad de instancias de VM que su carga de trabajo puede permitirse perder (desde su tamaño máximo) dentro del período de tiempo final especificado. Utilice este parámetro para limitar cuánto se puede escalar su grupo para que aún pueda atender un posible pico de carga hasta que comiencen a servir más instancias. Cuanto menor sea la reducción máxima permitida, más tiempo tardará el grupo en ampliarse.
Ventana de tiempo final . El historial dentro del cual el escalador automático monitorea el tamaño máximo requerido por su carga de trabajo. El escalador automático no cambiará de tamaño por debajo de la reducción máxima permitida restada del tamaño máximo observado en este período. Puede utilizar este parámetro para definir cuánto tiempo debe esperar el escalador automático antes de eliminar instancias, según lo definido por la reducción máxima permitida. Con una ventana de tiempo de seguimiento más larga, el escalador automático considera más picos históricos, lo que hace que el escalado sea más conservador y estable.
Para obtener más información, consulte Configuración de controles de escalamiento horizontal y Comprensión de las decisiones del escalador automático .
Tamaño recomendado
El tamaño de grupo recomendado es la cantidad de VM recomendada por el escalador automático que el grupo de instancias administrado debe mantener, según la carga máxima observada durante los últimos 10 minutos. Estos últimos 10 minutos se denominan período de estabilización . El tamaño recomendado se recalcula constantemente. Si establece una política de escalamiento automático con controles de escalabilidad horizontal, el tamaño recomendado estará restringido por sus controles de escalabilidad horizontal.
Limitaciones
No puedes usar el escalado automático con los siguientes grupos de instancias, que no permiten que el escalador automático cree o elimine VM según la demanda:
- Grupos de instancias no administrados
- MIG con configuración con estado
- MIG con reparaciones de VM desactivadas
- MIG regionales con una forma de distribución objetivo de
ANY
oANY_SINGLE_ZONE
No puede crear instancias de VM con nombres específicos mientras el ajuste de escala automático está activado.
No utilice el ajuste de escala automático de Compute Engine con MIG que sean propiedad de Google Kubernetes Engine. Para los grupos de Google Kubernetes Engine, utilice el ajuste de escala automático del clúster . Si no estás seguro de si un MIG es parte de un clúster de GKE, busca el prefijo
gke
en el nombre del MIG. Por ejemplo,gke-test-1-3-default-pool-eadji9ah
.
¿Qué sucede durante la curación automática?
El ajuste de escala automático funciona independientemente de la reparación automática . Si configura la reparación automática para su grupo y una instancia no supera la verificación de estado, el MIG intenta recrear la instancia. Mientras el MIG recrea una instancia, la cantidad de instancias en ejecución en el grupo puede ser menor que la cantidad mínima de instancias especificadas para el grupo ( autoscalingPolicy.minNumReplicas
).
Precios
No hay ningún cargo adicional por configurar una política de escalado automático. Autoscaler agrega o elimina dinámicamente instancias de VM, por lo que solo se le cobra por los recursos que utiliza su MIG. Puede controlar el costo de los recursos configurando el número mínimo y máximo de instancias en la política de escalado automático.Para obtener información sobre los precios de Compute Engine, consulte Precios .
¿Qué sigue?
- Descubra cómo funciona el ajuste de escala automático en un MIG regional .
- Si no tienes un MIG existente, revisa cómo crear un grupo de instancias administrado .
Cree un escalador automático que escale en:
Administre su escalador automático , por ejemplo, para obtener información sobre él, configurar controles de escalado horizontal o restringirlo temporalmente.