Autoescalado de instancias de contenedores

En Knative Serving, cada revisión se escala automáticamente al número de instancias de contenedor necesarias para gestionar todas las solicitudes entrantes. Cuando una revisión no recibe tráfico, de forma predeterminada, se escala a cero instancias de contenedor. Sin embargo, si quieres, puedes cambiar este valor predeterminado para especificar una instancia que se mantenga inactiva o "caliente" mediante el ajuste Número mínimo de instancias.

El número de instancias programadas se ve afectado por lo siguiente:

En algunos casos, puede que quieras limitar el número total de instancias de contenedor que se pueden iniciar por motivos de control de costes o para mejorar la compatibilidad con otros recursos que utilice tu servicio. Por ejemplo, tu servicio Knative Serving puede interactuar con una base de datos que solo puede gestionar un número determinado de conexiones abiertas simultáneas.

Información sobre el número máximo de instancias de contenedor

Puedes usar la opción de número máximo de instancias de contenedor para limitar el número total de instancias que se pueden iniciar en paralelo, tal como se explica en el artículo Configurar un número máximo de instancias de contenedor.

Superar el número máximo de instancias

En circunstancias normales, tu revisión se amplía creando nuevas instancias para gestionar la carga de tráfico entrante. Sin embargo, si estableces un límite máximo de instancias, en algunos casos no habrá suficientes instancias para satisfacer esa carga de tráfico. En ese caso, las solicitudes entrantes se ponen en cola durante un máximo de 60 segundos. Durante este periodo de 60 segundos, si una instancia termina de procesar solicitudes, estará disponible para procesar las solicitudes en cola. Si no hay ninguna instancia disponible durante el periodo de 60 segundos, la solicitud fallará y se devolverá un código de error 429 en Cloud Run.

Garantías de escalado

El límite máximo de instancias es un límite superior. Definir un límite alto no significa que tu revisión se escalará al número de instancias de contenedor especificado. Solo significa que el número de instancias de contenedor en cualquier momento no debe superar el límite.

Picos de tráfico

En algunos casos, como los picos de tráfico rápidos, Knative Serving puede crear, durante un breve periodo, ligeramente más instancias de contenedor que el valor máximo de instancias especificado. Si tu servicio no puede tolerar este comportamiento temporal, te recomendamos que incluyas un margen de seguridad y definas un valor de instancias máximas inferior.

Despliegues

Cuando despliega una nueva revisión, Knative Serving migra gradualmente el tráfico de la revisión antigua a la nueva. Como los límites de instancias máximas se definen para cada revisión, es posible que superes temporalmente el límite especificado durante el periodo posterior a la implementación.

Instancias inactivas y minimización de los arranques en frío

Los recursos de Kubernetes solo se consumen cuando una instancia gestiona una solicitud, pero esto no significa que Knative Serving cierre inmediatamente las instancias una vez que hayan gestionado todas las solicitudes. Para minimizar el impacto de los arranques en frío, Knative Serving puede mantener algunas instancias inactivas. Estas instancias están preparadas para gestionar solicitudes en caso de que se produzca un pico de tráfico repentino.

Por ejemplo, cuando una instancia de contenedor ha terminado de gestionar solicitudes, puede permanecer inactiva durante un periodo determinado por si es necesario gestionar otra solicitud. Una instancia de contenedor inactiva puede conservar recursos, como conexiones de bases de datos abiertas. Sin embargo, en Cloud Run, la CPU no estará disponible.

Para que las instancias inactivas estén disponibles permanentemente, usa el ajuste min-instance.

Siguientes pasos