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:
- La cantidad de CPU necesaria para procesar una solicitud
- La configuración de simultaneidad
- El número máximo de instancias de contenedor
- El número mínimo de instancias de contenedor
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
- Para gestionar el número máximo de instancias de tus servicios de Knative Serving, consulta Configurar un número máximo de instancias de contenedor.
- Para gestionar el número máximo de solicitudes simultáneas que gestiona cada instancia de contenedor, consulta Configurar la simultaneidad.
- Para optimizar la configuración de simultaneidad, consulta los consejos de desarrollo para ajustar la simultaneidad.
- Para especificar una instancia inactiva que se mantenga en ejecución para minimizar la latencia o los arranques en frío en las primeras solicitudes, consulta Usar
min-instance
para habilitar instancias inactivas.