Scalabilità automatica di istanze di container

In Knative serving, ogni revisione viene scalata automaticamente in base al numero di istanze container necessarie per gestire tutte le richieste in entrata. Quando una revisione non riceve traffico, per impostazione predefinita viene scalato a zero istanze di container. Tuttavia, se vuoi, puoi modificare questa impostazione predefinita per specificare un'istanza da mantenere inattiva o "in uso" utilizzando l'impostazione Istanze minime.

Il numero di istanze pianificate è influenzato da:

In alcuni casi è consigliabile limitare il numero totale di istanze di container che possono essere avviati, per motivi di controllo dei costi o per una migliore compatibilità ad altre risorse utilizzate dal tuo servizio. Ad esempio, la query Knative serving potrebbe interagire con un database che può gestire solo un certo numero e connessioni aperte simultanee.

Informazioni sul numero massimo di istanze di container

Puoi utilizzare l'impostazione Numero massimo di istanze di container per limitare il numero totale di di istanze che possono essere avviate in parallelo, come documentato Impostazione di un numero massimo di istanze di container.

Superamento del numero massimo di istanze

In circostanze normali, la revisione fa lo scale out creando nuove istanze per gestire il carico del traffico in entrata. Ma quando imposti un limite massimo di istanze, in alcune In alcuni casi, le istanze non saranno sufficienti per soddisfare quel carico di traffico. Nella in questo caso, le richieste in entrata mettono in coda fino a 60 secondi. Durante questi 60 secondi finestra, se un'istanza termina l'elaborazione delle richieste, quest'ultima diventa disponibile elaborare le richieste in coda. Se non vengono rese disponibili istanze durante il periodo di 60 secondi, la richiesta non va a buon fine con un codice di errore 429 su Cloud Run.

Garanzie di scalabilità

Il limite massimo di istanze è un limite massimo. Impostare un limite alto non significa che la revisione farà lo scale out del numero specificato di istanze di container. Significa solo che il numero di istanze di container in un determinato momento non deve superare il limite.

Picchi di traffico

In alcuni casi, come i rapidi picchi di traffico, Knative serving potrebbe, per brevi di tempo, crea un numero leggermente più elevato di istanze di container rispetto a quelle specificate il valore massimo di istanze. Se il tuo servizio non può tollerare questo comportamento temporaneo, ti consigliamo di prendere in considerazione un margine di sicurezza e impostare un valore di istanze massime inferiore.

Deployment

Quando esegui il deployment di una nuova revisione, il servizio Knative esegue gradualmente la migrazione del traffico dalla vecchia revisione alla nuova. Poiché sono stati impostati limiti massimi di istanze ogni revisione, potresti superare temporaneamente il limite specificato durante il periodo dopo il deployment.

Istanze inattive e riduzione al minimo degli avvii a freddo

Le risorse Kubernetes vengono utilizzate solo quando un'istanza gestisce una richiesta, ma questo non significa che Knative serving si arresti immediatamente. di Compute Engine dopo che hanno gestito tutte le richieste. Per ridurre al minimo l'impatto degli avvii a freddo, Knative serving potrebbe mantenere alcune istanze inattive. Queste istanze sono pronte a gestire le richieste in caso di un picco improvviso di traffico.

Ad esempio, quando un'istanza di container ha terminato di gestire le richieste, rimangono inattive per un certo periodo di tempo nel caso in cui sia necessario un'altra richiesta gestire. Un'istanza di container inattiva può rendere persistenti le risorse, ad esempio e connessioni ai database. Tuttavia, per Cloud Run, La CPU non sarà disponibile

Per mantenere le istanze inattive disponibili permanentemente, utilizza l'impostazione min-instance.

Passaggi successivi