Impostare il numero massimo di istanze per i servizi

Questa pagina descrive come impostare il numero massimo di istanze che possono essere utilizzate per il servizio Cloud Run utilizzando il comportamento di scalabilità automatica di Cloud Run predefinito. Per scalare manualmente il servizio, consulta la sezione Scalabilità manuale.

La specifica del numero massimo di istanze in Cloud Run ti consente di limitare lo scaling del servizio in risposta alle richieste in entrata, anche se questa impostazione massima può essere superata per un breve periodo a causa di circostanze come picchi di traffico.

Puoi utilizzare questa impostazione per controllare i costi o per limitare il numero di connessioni a un servizio di backend, ad esempio a un database.

Per informazioni sui limiti massimi delle istanze che potrebbero essere applicati al tuo servizio, consulta Limiti massimi delle istanze.

Per ulteriori informazioni sul modo in cui Cloud Run esegue la scalabilità automatica delle istanze container, consulta Scalabilità automatica delle istanze.

Applica il numero massimo di istanze a livello di servizio anziché a 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, a meno che tu non abbia un'esigenza specifica di limitare le istanze a livello di revisione.

Quando applichi il numero massimo di istanze, le impostazioni entrano in vigore come segue:

  • Livello di servizio: immediatamente
  • A livello di revisione: al momento del deployment della revisione

Revisioni con tag e numero massimo di istanze a livello di servizio

Le revisioni taggate 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 dei servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM 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 ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.

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 o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione.

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Se stai configurando un nuovo servizio, seleziona Servizi e fai clic su Esegui il deployment del container per visualizzare il modulo Crea servizio. Individua il modulo Scalabilità del servizio.

  3. Se stai configurando un servizio esistente, fai clic sul servizio per visualizzare il relativo riquadro dei dettagli, quindi fai clic su Modifica impostazioni di scalabilità a livello di servizio in alto a destra nel riquadro dei dettagli.

  4. Nel campo etichettato Numero massimo di istanze, specifica il numero massimo di istanze di container richiesto, utilizzando qualsiasi valore intero da 1 al limite massimo possibile per il tuo servizio.

  5. Fai clic su Crea per un nuovo servizio o su Esegui il deployment per un servizio esistente.

gcloud

Puoi aggiornare il numero massimo di istanze di un determinato servizio utilizzando il seguente comando:

gcloud beta run services update SERVICE --max MAX-VALUE

Sostituisci

  • SERVICE: il nome del tuo servizio.
  • MAX-VALUE: il numero massimo richiesto di istanze di container, utilizzando qualsiasi valore intero da 1 al limite massimo possibile per il tuo servizio.

Puoi anche impostare il numero massimo di istanze durante il deployment utilizzando il comando:

gcloud beta run deploy --image IMAGE_URL --max MAX-VALUE

Sostituisci

  • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • MAX-VALUE: il numero massimo richiesto di istanze del container, utilizzando qualsiasi valore intero da 1 al limite massimo.

YAML

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.

  1. 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
  2. Aggiorna l'attributo run.googleapis.com/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
        run.googleapis.com/maxScale: 'MAX-INSTANCE'

    Sostituisci

    • SERVICE: il nome del tuo servizio Cloud Run
    • MAX-INSTANCE: il numero massimo richiesto di istanze di container, utilizzando qualsiasi valore intero da 1 al limite massimo possibile per il tuo servizio.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

Visualizzare le istanze massime a livello di servizio

Per visualizzare le impostazioni correnti del numero massimo di istanze a livello di servizio per il tuo servizio Cloud Run:

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio per aprire il riquadro Dettagli servizio.

  3. Visualizza l'impostazione attuale nella parte superiore destra del riquadro dei dettagli del servizio, accanto a Scalabilità.

gcloud

  1. Utilizza questo comando:

    gcloud run services describe SERVICE
  2. 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 comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.

Per impostazione predefinita, i servizi Cloud Run sono configurati per scalare fino a un massimo di 100 istanze.

Puoi modificare l'impostazione del numero massimo di istanze utilizzando la console Google Cloud , Google Cloud CLI o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione.

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Trova e fai clic sul servizio che vuoi aggiornare nell'elenco dei servizi per aprire i dettagli del servizio.

  3. Fai clic su Modifica ed esegui il deployment di una nuova revisione per visualizzare il modulo di deployment della revisione.

  4. Fai clic sulla scheda Contenitore.

  5. Individua la sezione Scalabilità delle revisioni. Nel campo etichettato Numero massimo di istanze, specifica il numero massimo di istanze di container.

  6. Fai clic su Esegui il deployment.

gcloud

Puoi aggiornare il numero massimo di istanze di un determinato servizio utilizzando il seguente comando:

gcloud beta run services update SERVICE --max-instances MAX-VALUE

Sostituisci

  • SERVICE: il nome del tuo servizio.
  • MAX-VALUE: il numero massimo richiesto di istanze del container, utilizzando qualsiasi valore intero da 1 al limite massimo.

YAML

  1. 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
  2. Aggiorna l'attributo autoscaling.knative.dev/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

    Sostituisci

    • SERVICE: il nome del tuo servizio Cloud Run
    • MAX-INSTANCE: il numero massimo richiesto di istanze del container, utilizzando qualsiasi valore intero da 1 al limite massimo.
    • REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non supera i 63 caratteri
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

Visualizzare le impostazioni del numero massimo di istanze a livello di revisione

Per visualizzare le impostazioni del numero massimo di istanze a livello di revisione correnti per il tuo servizio Cloud Run:

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio per aprire il riquadro Dettagli servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, visualizza l'impostazione Revisione istanze max. elencata nella scheda Container.

gcloud

  1. Utilizza questo comando:

    gcloud run services describe SERVICE
  2. Individua il valore di Max instances: nella configurazione restituita.

Utilizzare il numero minimo o massimo di istanze a livello di servizio e di revisione

La tabella seguente mostra il comportamento se combini il numero massimo di istanze a livello di servizio con il numero minimo o massimo di istanze 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 a livello di revisione impostato Il limite massimo effettivo di istanze è il valore inferiore tra il numero massimo di istanze a livello di revisione e il numero massimo di istanze a livello di servizio.
Numero massimo di istanze a livello di servizio impostato Numero minimo di istanze a livello di revisione impostato 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 raggiunge il numero minimo di istanze a livello di revisione configurato.

Utilizzare il numero massimo di istanze a livello di servizio con la suddivisione del traffico

Se utilizzi la divisione del traffico, le istanze massime a livello di servizio vengono distribuite tra le revisioni in base alla proporzione della divisione del traffico. Ad esempio, se il numero massimo di istanze a livello di servizio è 100, una suddivisione del traffico 50/50 alloca 50 istanze massime a livello di servizio a ogni revisione. La seguente tabella mostra uno scenario di configurazione di esempio:

Esempio di configurazione Comportamento conseguente
Numero massimo di istanze a livello di servizio impostato (scenario in cui non sono presenti impostazioni a livello di revisione): 100
  • Suddivisione del traffico per la revisione A: 10%
  • Suddivisione del traffico per la revisione B: 10%
  • Suddivisione del traffico per la revisione C : 80%
A ogni revisione viene assegnata una parte delle istanze massime 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.