Impostazione dell'affinità sessione (servizi)

Questa pagina mostra come abilitare l'affinità sessione per Cloud Run la revisione del servizio.

Come funziona l'affinità sessione

Per impostazione predefinita, l'affinità sessione non è attivata, pertanto le richieste dello stesso client potrebbero essere gestite da istanze diverse, come mostrato di seguito: immagine

Se abiliti l'affinità sessione, Cloud Run instrada richieste sequenziali per un determinato client alla stessa istanza di revisione. Cloud Run utilizza un cookie di affinità sessione con un TTL di 30 giorni e ne controlla il valore per identificare più richieste dello stesso client e indirizzarle tutte alla stessa istanza, come mostrato di seguito: immagine

Comportamenti chiave da tenere presente

Come mostrato nel diagramma sopra, con l'affinità di sessione abilitata, un client raggiungerà la stessa istanza. Tuttavia, tieni presente che l'istanza può ricevere richieste da clienti diversi. L'affinità sessione non significa che l'istanza sia dedicata a un solo client.

A causa del comportamento di scalabilità automatica di Cloud Run, l'affinità di sessione è un'affinità best effort. Se l'istanza viene terminata per qualsiasi motivo o raggiunge massimo della contemporaneità di richieste o utilizzo massimo della CPU, quindi sessione l'affinità non funziona e ulteriori richieste vengono instradate a un'istanza diversa.

Sebbene tu possa memorizzare nella cache i dati della sessione del client nella memoria delle istanze, non puoi presumere che un client si ricollegherà sempre alla stessa istanza, anche quando l'affinità di sessione è attivata.

L'affinità sessione di Cloud Load Balancing e l'affinità sessione Cloud Run sono due implementazioni separate e indipendenti dell'affinità sessione. Puoi attivare l'affinità di sessione di Cloud Run su un servizio Cloud Run, anche se si trova dietro un bilanciatore del carico. Tuttavia, non devi attivare l'affinità di sessione di Cloud Load Balancing in un gruppo di endpoint di rete serverless, poiché non è supportata.

Affinità sessione e suddivisione del traffico

Puoi abilitare o disabilitare l'affinità sessione a livello di revisione. Se attivi l'affinità sessione in una revisione Cloud Run e utilizzi anche la suddivisione del traffico, l'affinità sessione ha la precedenza su qualsiasi suddivisione del traffico. In casi estremi, se un solo client che utilizza l'affinità sessione è responsabile della stragrande maggioranza di tutti tutte le richieste possono essere indirizzate a una determinata revisione, indipendentemente la configurazione di suddivisione del traffico.

Se attivi la suddivisione del traffico per le revisioni in cui alcune hanno l'affinità sessione abilitata e altre no, le richieste vengono gradualmente spostate verso le revisioni in cui è abilitata l'affinità sessione, anche se non modifichi esplicitamente la configurazione della suddivisione del traffico. Il motivo è che ogni richiesta a cui non è collegato un cookie di affinità sessione è soggetto a una suddivisione casuale, dove alla fine alcune verranno assegnate a una revisione con affinità sessione in seguito le richieste rimarranno nella revisione specifica.

Quando aggiorni la configurazione della suddivisione del traffico per un servizio Cloud Run, le richieste successive con cookie di affinità sessione allegati potrebbero essere assegnate a una revisione diversa. Cloud Run riduce al minimo il numero di client viene reindirizzato a una nuova revisione.

Ad esempio, se un servizio suddivideva il traffico in una percentuale del 90%/10% e la suddivisione viene aggiornata al 80%/20%, il 10% del traffico verrà reindirizzato alla revisione che ora pubblica il 20% del traffico.

Imposta affinità sessione

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

Puoi impostare l'affinità sessione utilizzando la console Google Cloud, gcloud o l'utilizzo di un file .yaml quando esegui crea 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. Fai clic su Esegui il deployment del container e seleziona Servizio per nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Networking.

    immagine

    • Fai clic sulla casella di testo Affinità sessione.
  5. Fai clic su Crea o Esegui il deployment.

gcloud

Per specificare l'affinità di sessione, utilizza il seguente comando:

gcloud run services update SERVICE --session-affinity

Sostituisci

  • SERVICE con il nome del servizio che stai aggiornando.

Per rimuovere l'affinità sessione, utilizza il comando

gcloud run services update SERVICE --no-session-affinity

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. Aggiungi l'annotazione run.googleapis.com/sessionAffinity::

    spec:
     template:
       metadata:
         annotations:
           run.googleapis.com/sessionAffinity: 'BOOL'

    Sostituisci

    • "BOOL" con valore "true" per impostare l'affinità sessione o "false" per rimuovere l'affinità sessione.
  3. Crea o aggiorna il servizio utilizzando il comando seguente:

    gcloud run services replace service.yaml

Visualizza le impostazioni di affinità sessione

Per visualizzare le impostazioni di affinità della sessione correnti per il servizio Cloud Run:

Console

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

    Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire Dettagli servizio. .

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione Affinità sessione è elencato nella scheda Networking.

gcloud

  1. Utilizza questo comando:

    gcloud run services describe SERVICE
  2. Individua l'impostazione di affinità della sessione nella configurazione restituita.