Questa pagina descrive come impostare il numero massimo di istanze che possono essere utilizzate per il tuo servizio Cloud Run utilizzando il comportamento di scalabilità automatica di Cloud Run predefinito. Per scalare manualmente il servizio, consulta Scalabilità manuale.
La specifica del numero massimo di istanze in Cloud Run consente di limitare la scalabilità del servizio in risposta alle richieste in entrata, anche se questo valore massimo può essere superato per un breve periodo a causa di circostanze come i picchi di traffico.
Puoi utilizzare questa impostazione per controllare i costi o per limitare il numero di connessioni a un servizio di supporto, ad esempio un database.
Per informazioni sui limiti massimi di istanze che potrebbero essere applicati al tuo servizio, consulta Limiti massimi di istanze.
Per saperne di più sul modo in cui Cloud Run scala automaticamente le istanze di container, consulta Scalabilità automatica delle istanze.
Applica il numero massimo di istanze a livello di servizio rispetto al livello di revisione
Puoi configurare il numero massimo di istanze a livello di servizio o di revisione. Google consiglia di utilizzare il numero massimo di istanze a livello di servizio per limitare il numero di istanze di un servizio, a meno che tu non abbia un'esigenza specifica di limitare le istanze a livello di revisione. Per impostazione predefinita, Cloud Run imposta 100 istanze per ogni revisione. Per consentire al servizio di fare lo scale up di più istanze, modifica questo valore.
Quando applichi il numero massimo di istanze, le impostazioni vengono applicate come segue:
- Livello di servizio: immediato
- A livello di revisione: al momento del deployment della revisione
Revisioni con tag e numero massimo di istanze a livello di servizio
Le revisioni con tag vengono avviate, ma vengono conteggiate ai fini del numero massimo di istanze a livello di servizio solo se fanno parte di una suddivisione del traffico.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Developer (
roles/run.developer) sul servizio Cloud Run - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Se esegui il deployment di un servizio o di una funzione dal codice sorgente, devi anche disporre di ruoli aggiuntivi concessi al tuo progetto e al account di servizio Cloud Build.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Considerazioni sui costi
L'impostazione del numero massimo di istanze consente di stabilire un limite di sicurezza per gestire i costi. L'impostazione di un numero massimo più elevato dà la priorità alla disponibilità, ma introduce potenziali rischi di fatturazione dovuti a picchi di traffico imprevisti o errori di configurazione. Come misura di salvaguardia dei costi, configura questa impostazione a livello di servizio quando esegui il deployment iniziale del servizio. Ti consigliamo di iniziare con un valore massimo di istanze pari a 3 per proteggere il tuo budget da picchi imprevisti.
Per saperne di più, consulta i prezzi di Cloud Run o stima i costi con il Calcolatore prezzi. Per ulteriori strumenti di controllo dei costi, consulta Quote di allocazione delle risorse o Budget e avvisi di fatturazione.
Configura il numero massimo di istanze a livello di servizio
Puoi modificare l'impostazione del numero massimo di istanze utilizzando la console Google Cloud , Google Cloud CLI, YAML o Terraform quando crei un nuovo servizio o esegui il deployment di una nuova revisione.
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Scalabilità.
In Scalabilità del servizio, individua il campo Numero massimo di istanze e specifica il numero massimo di istanze di container richiesto, utilizzando un valore intero compreso tra
1e il limite massimo possibile per il tuo servizio. Per rimuovere il limite a livello di servizio, elimina il valore impostato. In questo modo, l'impostazione viene ripristinata al valore predefinito.Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
gcloud
Puoi aggiornare il numero massimo di istanze di un determinato servizio utilizzando il seguente comando:
gcloud run services update SERVICE --max MAX-VALUE
Sostituisci quanto segue:
- SERVICE: il nome del servizio.
- MAX-VALUE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo possibile per il tuo servizio. Per rimuovere il limite a livello di servizio, elimina il valore impostato. In questo modo, l'impostazione viene ripristinata al valore predefinito.
Puoi anche impostare il numero massimo di istanze durante il deployment utilizzando il seguente comando:
gcloud run deploy --image IMAGE_URL --max MAX-VALUE
Sostituisci quanto segue:
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- MAX-VALUE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo.
YAML
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'attributo
run.googleapis.com/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/maxScale: 'MAX-INSTANCE'
Sostituisci quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run
- MAX-INSTANCE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo possibile per il tuo servizio. Per rimuovere il limite a livello di servizio, elimina il valore impostato. In questo modo, l'impostazione viene ripristinata al valore predefinito.
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Il comando
gcloud run services replaceutilizza per impostazione predefinita il fileservice.yaml, se presente.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service nella configurazione Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
scaling {
max_instance_count = MAX_INSTANCE
}
template {
containers {
image = "IMAGE_URL"
}
}
}
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- REGION: la regione Google Cloud , ad esempio
europe-west1. - MAX_INSTANCE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo. IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Visualizza il numero massimo di istanze a livello di servizio
Per visualizzare le impostazioni attuali del numero massimo di istanze a livello di servizio per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio per aprire il riquadro Dettagli servizio.
Fai clic sulla scheda Scalabilità per visualizzare l'impostazione corrente.
gcloud
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua il valore di Scalabilità: automatica (min: MIN_VALUE, max: MAX_VALUE) nella configurazione restituita.
Configura il numero massimo di istanze a livello di revisione
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Per impostazione predefinita, le revisioni di Cloud Run sono configurate per fare lo scale up fino a un massimo di 100 istanze.
La scalabilità a livello di revisione è disponibile solo per i servizi per cui la funzionalità era stata configurata in precedenza.
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container e compila la pagina delle impostazioni iniziali del servizio. Quindi fai clic su Container, networking, sicurezza per espandere la pagina di configurazione del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Scalabilità.
Nella sezione Scalabilità delle revisioni, specifica il numero massimo di istanze di container nel campo Numero massimo di istanze.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
gcloud
Puoi aggiornare il numero massimo di istanze di un determinato servizio utilizzando il seguente comando:
gcloud run services update SERVICE --max-instances MAX-VALUE
Sostituisci quanto segue:
- SERVICE: il nome del servizio.
- MAX-VALUE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'attributo
autoscaling.knative.dev/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Sostituisci quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run
- MAX-INSTANCE: il numero massimo richiesto di istanze di container, utilizzando un valore intero compreso tra
1e il limite massimo. REVISION: un nuovo nome della revisione o eliminalo (se presente). Se fornisci un nuovo nome della revisione, questo deve soddisfare i seguenti criteri:- Inizia con
SERVICE- - Contiene solo lettere minuscole, numeri e
- - Non termina con
- - Non supera i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Il comando
gcloud run services replaceutilizza per impostazione predefinita il fileservice.yaml, se presente.
Visualizza le impostazioni del numero massimo di istanze a livello di revisione
La scalabilità a livello di revisione è disponibile solo per i servizi per cui la funzionalità era stata configurata in precedenza.
Per visualizzare le impostazioni attuali del numero massimo di istanze a livello di revisione per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio per aprire il riquadro Dettagli servizio.
Fai clic sulla scheda Scalabilità.
In Scalabilità delle revisioni, visualizza il Numero massimo di istanze.
gcloud
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua il valore di Istanze massime: nella configurazione restituita.
Utilizza il numero minimo o massimo di istanze sia a livello di servizio che di revisione
La tabella seguente mostra il comportamento se combini le istanze massime a livello di servizio con le istanze minime o massime a livello di revisione:
| Impostazione a livello di servizio | Impostazione a livello di revisione | Comportamento |
|---|---|---|
| Numero massimo di istanze a livello di servizio impostato | Numero massimo di istanze impostato a livello di revisione | Il limite massimo di istanze effettivo è il valore più basso tra le istanze massime a livello di revisione e le istanze massime a livello di servizio. |
| Numero massimo di istanze a livello di servizio impostato | Numero minimo di istanze impostato a livello di revisione | Se il numero massimo di istanze a livello di servizio è impostato su un valore inferiore al numero minimo di istanze a livello di revisione, la revisione avvia le istanze fino al numero massimo di istanze a livello di servizio e non raggiungerà il numero minimo di istanze a livello di revisione configurato. |
Utilizza il numero massimo di istanze a livello di servizio con la suddivisione del traffico
Se utilizzi la suddivisione del traffico, il numero massimo di istanze a livello di servizio viene distribuito tra le revisioni in base alla proporzione della suddivisione del traffico. Ad esempio, se il numero massimo di istanze a livello di servizio è 100, una suddivisione del traffico 50/50 assegna 50 istanze massime a livello di servizio a ogni revisione. La tabella seguente mostra uno scenario di configurazione di esempio:
| Esempio di configurazione | Comportamento conseguente |
|---|---|
Numero massimo di istanze impostato a livello di servizio (scenario in cui non sono presenti impostazioni a livello di revisione): 100
|
A ogni revisione viene assegnata una parte del numero massimo di istanze a livello di servizio. Il numero massimo effettivo di istanze per ogni revisione è fisso in base alla suddivisione del traffico. Il numero massimo di istanze per la Revisione A è 10, per la Revisione B è 10 e per la Revisione C è 80. |