Scalabilità automatica di istanze di container

In Knative serving, a ogni revisione viene scalato automaticamente al numero di istanze container necessario per gestire a tutte le richieste in arrivo. Quando una revisione non riceve traffico, per impostazione predefinita viene scalato a zero istanze di container. Tuttavia, se vuoi, puoi modifica questa impostazione predefinita per specificare un'istanza da mantenere inattiva o "calda" utilizzando l'impostazione del numero minimo di istanze.

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. Nel 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 nessuna istanza diventa disponibile entro 60 secondi la richiesta non va a buon fine e restituisce un codice di errore 429 in Cloud Run.

Garanzie di scalabilità

Il limite massimo di istanze è un limite superiore. 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 qualsiasi momento non superi 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 servizio non è in grado di tollerare questo comportamento temporaneo, ti consigliamo di tenere conto di un margine di sicurezza e di impostare un valore massimo più basso per le istanze.

Deployment

Quando esegui il deployment di una nuova revisione, Knative serving esegue gradualmente la migrazione del traffico dalla vecchia revisione a quella 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 del freddo , Knative serving potrebbe mantenere inattive alcune istanze. Questi le istanze sono pronte a gestire le richieste in caso di un picco di traffico improvviso.

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 permanentemente disponibili, utilizza min-instance.

Passaggi successivi