Scalabilità automatica di istanze di container

In Knative serving, ogni revision 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 eseguito lo scale down fino a zero istanze del contenitore. 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 potresti voler limitare il numero totale di istanze di container che possono essere avviate, per motivi di controllo dei costi o per una migliore compatibilità con altre risorse utilizzate dal tuo servizio. Ad esempio, il servizio di pubblicazione Knative potrebbe interagire con un database che può gestire solo un determinato numero di connessioni aperte simultanee.

Informazioni sulle istanze di container massime

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

Numero massimo di istanze superato

In circostanze normali, la revisione viene eseguita su più istanze per gestire il carico del traffico in entrata. Tuttavia, se imposti un limite massimo di istanze, in alcuni scenari le istanze non saranno sufficienti per soddisfare il carico del traffico. In questo caso, le richieste in arrivo rimangono in coda per un massimo di 60 secondi. Durante questo intervallo di 60 secondi, se un'istanza termina l'elaborazione delle richieste, diventa disponibile per 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. L'impostazione di un limite elevato non significa che la revisione verrà scalata fino al numero specificato di istanze 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, ad esempio in caso di picchi di traffico rapidi, la pubblicazione Knative potrebbe, per un breve periodo di tempo, creare leggermente più istanze contenitore rispetto al valore di istanze massime specificato. 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é i limiti di istanze massime sono impostati per ogni revisione, potresti superare temporaneamente il limite specificato nel periodo successivo al deployment.

Istanze inattive e riduzione al minimo degli avvii a freddo

Le risorse Kubernetes vengono utilizzate solo quando un'istanza gestisce una richiesta, ma ciò non significa che il servizio Knative arresti immediatamente le istanze dopo aver 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 del contenitore ha terminato di gestire le richieste, potrebbe rimanere inattiva per un determinato periodo di tempo nel caso in cui debba essere gestita un'altra richiesta. Un'istanza di contenitore inattiva potrebbe mantenere le risorse, ad esempio le connessioni a database aperte. Tuttavia, per Cloud Run, la CPU non sarà disponibile

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

Passaggi successivi