In Cloud Run for Anthos, ogni revisione viene scalata automaticamente al numero di istanze di container necessarie per gestire tutte le richieste in entrata. Quando una revisione non riceve traffico, per impostazione predefinita viene scalata a zero istanze di container. Tuttavia, se vuoi, puoi modificare questa impostazione predefinita per specificare un'istanza da mantenere inattiva o "calda" utilizzando l'impostazione istanze minime.
Il numero di istanze pianificate è influenzato da:
- La quantità di CPU necessaria per elaborare una richiesta
- L'impostazione di contemporaneità
- L'impostazione relativa al numero massimo di istanze di container
- L'impostazione relativa al numero minimo di istanze di container
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 maggiore compatibilità con altre risorse utilizzate dal servizio. Ad esempio, il servizio Cloud Run for Anthos potrebbe interagire con un database in grado di gestire solo un determinato numero di 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 istanze che possono essere avviate in parallelo, come documentato in Impostazione di un numero massimo di istanze di container.
Superamento del numero massimo di istanze
In circostanze normali, la revisione si ridimensiona creando nuove istanze
per gestire il carico del traffico in entrata. Tuttavia, quando imposti un limite massimo di istanze, in alcuni casi il numero di istanze non soddisfa il carico di traffico. In
questo caso, le richieste in entrata rimangono in coda per un massimo di 60 secondi. Durante questa finestra di 60 secondi, se un'istanza completa l'elaborazione delle richieste, diventa disponibile per l'elaborazione delle richieste in coda. Se non diventano disponibili istanze durante la finestra di 60 secondi, la richiesta non riesce con un codice di errore 429
su Cloud Run.
Garanzie di scalabilità
Il limite massimo di istanze è un limite superiore. L'impostazione di un limite alto non implica che la revisione verrà scalata fino al numero specificato di istanze di container. Significa solo che il numero di istanze di container in qualsiasi momento non deve superare il limite.
Picchi di traffico
In alcuni casi, ad esempio in caso di picchi di traffico rapidi, Cloud Run for Anthos può creare, per un breve periodo di tempo, più istanze di container rispetto al valore massimo specificato. Se il tuo servizio non è in grado di tollerare questo comportamento temporaneo, puoi prendere in considerazione un margine di sicurezza e impostare un valore massimo di istanze inferiore.
Deployment
Quando esegui il deployment di una nuova revisione, Cloud Run for Anthos esegue gradualmente la migrazione del traffico dalla revisione precedente a quella nuova. Poiché per ogni revisione vengono impostati limiti massimi di istanze, potresti superare temporaneamente il limite specificato durante il periodo successivo al deployment.
Istanze inattive e riduzione al minimo degli avvii a freddo
Le risorse Kubernetes vengono consumate solo quando un'istanza gestisce una richiesta, ma questo non significa che Cloud Run for Anthos chiude immediatamente le istanze una volta che hanno gestito tutte le richieste. Per ridurre al minimo l'impatto degli avvii a freddo, Cloud Run for Anthos può mantenere alcune istanze inattive. Queste 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, potrebbe rimanere inattiva per un periodo di tempo qualora fosse necessario gestire un'altra richiesta. Un'istanza di container inattivo potrebbe conservare risorse, ad esempio connessioni di database aperte. Tuttavia, per Cloud Run, la CPU non sarà disponibile.
Per mantenere disponibili le istanze inattive definitivamente, utilizza l'impostazione
min-instance
.
Passaggi successivi
- Per gestire il numero massimo di istanze dei servizi Cloud Run for Anthos, vedi Impostare un numero massimo di istanze di container.
- Per gestire il numero massimo di richieste simultanee gestite da ogni istanza container, consulta Impostazione della contemporaneità.
- Per ottimizzare l'impostazione della contemporaneità, consulta i suggerimenti per lo sviluppo della correzione della contemporaneità.
- Per specificare un'istanza inattiva in modo che continui a essere eseguita per ridurre al minimo la latenza o l'avvio a freddo per le prime richieste, consulta la pagina relativa all'utilizzo di
min-instance
per abilitare le istanze inattive.