In questa pagina viene descritto come abilitare le istanze inattive per il servizio utilizzando il metodo le impostazioni minime delle istanze.
Per i servizi Cloud Run, Cloud Run per impostazione predefinita si adatta al numero di istanze in base al numero di richieste in entrata. Tuttavia, Se il servizio richiede una latenza ridotta, soprattutto quando si esegue la scalabilità da zero istanze attive, puoi modificare questo comportamento predefinito specificando un numero minimo di istanze di container in uso e pronte a gestire le richieste. Consulta Suggerimenti generali per lo sviluppo per ulteriori dettagli su questa ottimizzazione.
Cloud Run rimuove le istanze che non gestiscono le richieste (inattive). Con minimo
di istanze gestite, Cloud Run mantiene almeno il numero minimo di istanze in esecuzione, anche se non gestiscono richieste. Le istanze attive superiori a min-instances
potrebbero diventare inattive se non ricevono richieste.
Ad esempio, se min-instances
è 10
e il numero di istanze attive è 0
, il numero di istanze inattive è 10
.
Quando il numero di istanze attive aumenta a 6
, il numero di istanze inattive diminuisce a 4
.
Applicazione del numero minimo di istanze a livello di servizio rispetto a quelle a livello di revisione
Puoi configurare il numero minimo di istanze a livello di servizio o di revisione. Google consiglia di applicare il numero minimo di istanze al livello di servizio evitare di combinare istanze minime a livello di servizio e a livello di revisione.
Se applichi il numero minimo di istanze a livello di revisione, le impostazioni vanno in al momento del deployment della revisione. Se applichi questa funzione a livello di servizio, l'impostazione entra in vigore senza la necessità di eseguire il deployment revisione.
Revisioni con tag e istanze minime del livello di servizio
Revisioni con tag ma non verranno conteggiate ai fini del numero minimo di istanze a livello di servizio se non fanno parte di una suddivisione del traffico.
Fatturazione
Le istanze mantenute in esecuzione utilizzando la funzionalità di numero minimo di istanze sono soggette a costi di fatturazione. Poiché questi addebiti sono molto prevedibili, Google consiglia di acquistare uno Sconto per impegno di utilizzo.
Numero minimo di istanze e CPU sempre allocata
Puoi configurare La CPU deve essere sempre allocata se hai bisogno di CPU al di fuori delle richieste.
Numero minimo di riavvii delle istanze
Puoi riavviare il numero minimo di istanze in qualsiasi momento.
Revisioni e numero minimo di istanze
Se al livello di servizio viene impostato il numero minimo di istanze, queste vengono distribuite a tutti revisioni che gestiscono il traffico in modo proporzionale alla suddivisione del traffico.
Se a livello di revisione viene impostato il numero minimo di istanze, viene eseguito il numero minimo di istanze Viene avviata ogni volta che alla revisione viene citato una suddivisione del traffico (anche allo 0%) o è stato assegnato un tag di traffico.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment dei servizi Cloud Run, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Sviluppatore Cloud Run (
roles/run.developer
) sul servizio Cloud Run -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'identità del servizio
Per un elenco di ruoli e autorizzazioni IAM associati Cloud Run, consulta Ruoli IAM di Cloud Run e le autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run si interfaccia con Le API Google Cloud, come le librerie client di Cloud, consultano guida alla configurazione dell'identità dei servizi. Per ulteriori informazioni sulla concessione dei ruoli, consulta autorizzazioni di deployment e gestire l'accesso.
Impostazione e aggiornamento del numero minimo di istanze del livello di servizio
Per impostazione predefinita, le istanze di container hanno le istanze minime a livello di servizio disattivate, con un'impostazione
di 0
. Puoi modificare questa impostazione predefinita utilizzando la console Google Cloud,
Google Cloud CLI o un file YAML:
Console
Nella console Google Cloud, vai a Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Crea servizio . Se stai configurando un servizio esistente, fai clic sul servizio per visualizzarne i dettagli fai clic sull'icona a forma di penna accanto a Numero minimo di istanze in alto a destra nel riquadro dei dettagli.
Individua il modulo Scalabilità automatica servizio:
Nel campo Numero minimo di istanze: specificare il numero di istanze di container da mantenere attive, pronte a ricevere richieste.
Fai clic su Crea per un nuovo servizio o su Esegui il deployment per un servizio esistente.
gcloud
Aggiorna service-min-instances
per un determinato servizio utilizzando il comando seguente:
gcloud beta run services update SERVICE --service-min-instances MIN-VALUE
Sostituisci
- SERVICE con il nome del tuo servizio e
- MIN-VALUE con il numero di container
di mantenere attive le istanze, pronte a ricevere richieste. Specifica
default
per cancellare eventuali impostazioni minime dell'istanza.
In alternativa, puoi impostare service-min-instances
durante
deployment utilizzando il comando:
gcloud beta run deploy --image IMAGE_URL --service-min-instances MIN-VALUE
Sostituisci
- IMAGE_URL con un riferimento all'immagine container, per
ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creati. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MIN-VALUE con il numero di container
di mantenere attive le istanze, pronte a ricevere richieste. Specifica
default
per cancellare eventuali impostazioni minime dell'istanza.
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
run.googleapis.com/minScale
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/minScale: 'MIN_INSTANCE'
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run
- MIN-INSTANCE con il numero di istanze da sono tenute in caldo e pronte a ricevere richieste.
Crea o aggiorna il servizio utilizzando il comando seguente:
gcloud run services replace service.yaml
Librerie client
Per aggiornare il numero minimo di istanze del livello di servizio per il tuo servizio dal codice:
API REST
Per aggiornare il numero minimo di istanze a livello di servizio per un determinato servizio, invia un PATCH
Richiesta HTTP all'API Cloud Run Admin
Endpoint service
.
Ad esempio, se utilizzi curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{ "scaling": { "minInstanceCount": MIN-VALUE }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.minInstanceCount
Sostituisci:
- ACCESS_TOKEN con un token di accesso valido per un account che
dispone delle autorizzazioni IAM per aggiornare un servizio.
Ad esempio, se hai eseguito l'accesso a
gcloud
, puoi recuperare un utilizzandogcloud auth print-access-token
. Dall'interno di un'istanza di container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza di container. - MIN-VALUE con il numero di istanze di container da mantenere in uso, pronti a ricevere richieste.
- SERVICE con il nome del servizio.
- REGION con la regione Google Cloud del servizio.
- PROJECT-ID con l'ID progetto Google Cloud.
Visualizza il numero minimo di istanze del livello di servizio
Per visualizzare le impostazioni attuali delle istanze minime del livello di servizio per Servizio Cloud Run:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire il riquadro Dettagli servizio.
L'impostazione attuale viene mostrata in alto a destra nel riquadro dei dettagli del servizio, accanto a Numero minimo di istanze.
gcloud
Utilizza questo comando:
gcloud run services describe SERVICE
Individua il valore per Service-level Min Instances (Istanze minime a livello di servizio): nel configurazione.
Impostazione e aggiornamento del numero minimo di istanze a livello di revisione
Qualsiasi modifica alla configurazione porta la creazione di una nuova revisione. Anche le revisioni successive ricevono automaticamente di questa configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Per impostazione predefinita, le istanze di container hanno min-instances
disattivato, con un'impostazione
di 0
. Puoi modificare questa impostazione predefinita utilizzando la console Google Cloud,
Google Cloud CLI, o un file YAML quando crei un nuovo servizio oppure
esegui il deployment di una nuova revisione:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un'istanza servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila il servizio iniziale pagina delle impostazioni come preferisci, poi fai clic su Container, volumi, networking, sicurezza per espandere pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Nel campo Numero minimo di istanze: e specificare il numero desiderato di istanze di container da tenere in uso, pronte a ricevere richieste.
Fai clic su Crea o Esegui il deployment.
gcloud
Puoi aggiornare min-instance
di un determinato servizio utilizzando il seguente comando:
gcloud run services update SERVICE --min-instances MIN-VALUE
Sostituisci
- SERVICE con il nome del tuo servizio e
- MIN-VALUE con il numero desiderato di container
di mantenere attive le istanze, pronte a ricevere richieste. Specifica
default
per cancellare eventuali impostazioni minime dell'istanza.
Puoi anche impostare min-instance
durante
deployment utilizzando il comando:
gcloud run deploy --image IMAGE_URL --min-instances MIN-VALUE
Sostituisci
- IMAGE_URL con un riferimento all'immagine container, per
ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creati. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MIN-VALUE con il numero desiderato di container
di mantenere attive le istanze, pronte a ricevere richieste. Specifica
default
per cancellare eventuali impostazioni minime dell'istanza.
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/minScale:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE' name: REVISION
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run
- MIN-INSTANCE con il numero desiderato di istanze sono tenute in caldo e pronte a ricevere richieste.
- REVISION con un nuovo nome di revisione o eliminala (se presente). Se fornisci un nuovo nome per la revisione, deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Contiene solo lettere minuscole, numeri e
-
- Non termina con
-
- Non deve superare i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il comando seguente:
gcloud run services replace service.yaml
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.
La seguente risorsa google_cloud_run_v2_service
specifica un numero minimo
di istanze di 1
in template.scaling
.
Sostituisci 1
con il numero minimo di istanze.
Visualizza le impostazioni minime delle istanze a livello di revisione
Per visualizzare le impostazioni minime delle istanze a livello di revisione per il tuo Servizio Cloud Run:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione del numero minimo di istanze a livello di revisione è elencato nella scheda Contenitore.
gcloud
Utilizza questo comando:
gcloud run services describe SERVICE
Individua l'impostazione del numero minimo di istanze a livello di revisione nel configurazione.
Utilizzo di istanze minime o massime a livello di servizio e di revisione
La tabella seguente mostra il comportamento se combini il livello minimo di servizio e il numero minimo o massimo di istanze a livello di revisione:
Impostazione di configurazione | Comportamento |
---|---|
Vengono impostate sia le istanze minime del livello di servizio sia quelle minime a livello di revisione. | Il valore effettivo per la revisione è il maggiore tra il numero minimo di istanze a livello di revisione e il numero minimo di istanze a livello di servizio. |
Vengono impostate sia le istanze minime del livello di servizio sia le istanze massime a livello di revisione. | Il valore effettivo per la revisione è il minore tra il numero massimo di istanze a livello di revisione e il numero minimo di istanze del livello di servizio. Questo vale anche se il numero massimo di istanze a livello di revisione impedisce al servizio di raggiungere il numero di istanze configurate per il numero minimo di istanze a livello di servizio. |
Utilizzo di istanze minime del livello di servizio con suddivisione del traffico
Se utilizzi la suddivisione del traffico, il numero minimo di istanze a livello di servizio viene suddiviso tra le revisioni basate proporzione della suddivisione del traffico. Ad esempio, se il valore minimo del livello di servizio istanze = 10, una suddivisione del traffico 50/50 alloca 5 istanze minime del livello di servizio a ciascuna revisione.
La seguente tabella mostra scenari di configurazione di esempio:
Caso d'uso di esempio | Esempio di configurazione | Comportamento conseguente |
---|---|---|
Nessuna impostazione a livello di revisione | Numero minimo di istanze del livello di servizio: 10
|
La revisione A riceve 6 istanze da un numero minimo di istanze a livello di servizio, proporzionale alla suddivisione del traffico. La revisione B riceve 4 istanze da un numero minimo di istanze a livello di servizio, proporzionale alla suddivisione del traffico. |
Ricezione di più istanze rispetto al numero minimo di istanze a livello di servizio a causa del numero minimo di istanze a livello di revisione | Numero minimo di istanze del livello di servizio: 10
|
La revisione A riceve sei istanze da un numero minimo di istanze a livello di revisione. La revisione B riceve 5 istanze da un numero minimo di istanze a livello di servizio, proporzionale alla suddivisione del traffico. Questo supera il numero minimo di istanze del livello di servizio ed è previsto. |
Ricezione di istanze inferiori al livello minimo di servizio a causa del numero massimo di istanze a livello di revisione. | Numero minimo di istanze del livello di servizio: 10
|
La revisione A riceve 3 istanze da istanze minime a livello di servizio basate sulla suddivisione del traffico, ma è limitata alle istanze massime a livello di revisione. La revisione B riceve 5 istanze da istanze minime del livello di servizio, in proporzione alla suddivisione del traffico. Ne consegue che vengono perse 8 istanze a livello di servizio, poiché due vengono perse a causa del numero massimo di istanze di revisione A a livello di revisione. |
Il numero minimo di istanze a livello di servizio è maggiore del numero di revisioni nella suddivisione del traffico ed esiste una quantità frazionaria di istanze proporzionale alla suddivisione del traffico | Numero minimo di istanze del livello di servizio: 3
|
La revisione A riceve almeno 1 istanza, mentre la revisione B riceve almeno 2 istanze. Il numero di istanze per il servizio è 3. |