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 è abilitata, quindi le richieste da lo stesso client potrebbe essere gestito da istanze diverse, come mostrato qui: 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 ispeziona il valore per a identificare più richieste dello stesso client e a indirizzare tutte queste richieste la stessa istanza, come mostrato qui: immagine

Comportamenti chiave da tenere presente

Come mostrato nel diagramma in alto, con l'affinità sessione attivata, un client raggiungerà nella stessa istanza. Tuttavia, tieni presente che l'istanza può ricevere richieste da client diversi. Per affinità sessione non si intende è dedicata a un solo client.

A causa del comportamento della scalabilità automatica di Cloud Run, l'affinità sessione è 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 sia possibile memorizzare nella cache i dati della sessione client nella memoria delle istanze, non è possibile presumere che un client si riconnetta sempre alla stessa istanza anche quando è attivata l'affinità sessione.

Puoi utilizzare l'affinità sessione se usi Cloud Load Balancing con i tuoi servizi Cloud Run. Tuttavia, la configurazione della sessione affinità su bilanciatori del carico globali e interni non è supportata quando si utilizza Cloud Run, indipendentemente dalle impostazioni di affinità sessione di Cloud Run. Consulta Concetti del NEG serverless per ulteriori dettagli.

Affinità sessione e suddivisione del traffico

Puoi abilitare o disabilitare l'affinità sessione a livello di revisione. Se abilitare l'affinità sessione su una revisione di Cloud Run e utilizzare la suddivisione del traffico, 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 di queste hanno affinità attivata e altre no, il risultato è che le richieste vengono delle revisioni con un'affinità sessione attivata, anche se non hai esplicitamente impostato modificare 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 di suddivisione del traffico per un Cloud Run richieste successive con affinità sessione i cookie allegati potrebbero essere assegnati a una revisione diversa. Cloud Run riduce al minimo il numero di client viene reindirizzato a una nuova revisione.

Ad esempio, se un servizio divideva il traffico al 90%/10% e il traffico suddivisione viene aggiornata a 80%/20%, il 10% del traffico verrà reindirizzato la revisione che ora gestisce il 20% del traffico.

Imposta affinità sessione

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.

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 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.

  3. 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.

  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à sessione, utilizza il comando seguente:

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à sessione corrente per 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 la pagina 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à sessione nel configurazione.