Cloud Run for Anthos ti consente di specificare quali revisioni devono ricevere il traffico e di indicare le percentuali di traffico ricevute da una revisione. Questa funzionalità consente di eseguire il rollback a una revisione precedente, implementare gradualmente una revisione (nota anche come deployment blu/verde) e suddividere il traffico tra più revisioni. In questa pagina viene descritto come utilizzare questa funzionalità per gestire il traffico verso le revisioni di Cloud Run for Anthos.
Rollback a una revisione precedente in corso...
Per eseguire il rollback a una revisione precedente:
console
Vai a Cloud Run for Anthos in Google Cloud Console:
Fai clic sul servizio nell'elenco dei servizi.
Fai clic sulla scheda Revisioni per visualizzare l'elenco delle revisioni correnti per quel servizio.
Nell'elenco delle revisioni, fai clic sull'icona con i puntini di sospensione a destra della revisione di cui stai eseguendo il rollback:
Fai clic su Gestisci traffico per visualizzare il modulo per la gestione del traffico:
- Seleziona la revisione precedente a cui vuoi eseguire il rollback nell'elenco a discesa.
- Imposta la percentuale di traffico della revisione precedente su 100.
- Imposta la percentuale della revisione attualmente in uso su 0.
- Fai clic su Salva.
Riga di comando
Utilizza il comando seguente:
gcloud run services update-traffic SERVICE --to-revisions REVISION=100
- Sostituisci SERVICE con il nome del servizio.
- Sostituisci REVISION con il nome della revisione a cui stai eseguendo il rollback.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Nel tuo file locale, aggiorna l'attributo
traffic
che si trova inspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION percent: 100
Sostituisci
- REVISION con il nome della revisione a cui stai eseguendo il rollback.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud beta run services replace service.yaml
Implementazione graduale di una revisione
Per implementare gradualmente una nuova revisione (deployment blu/verde):
console
Vai a Cloud Run for Anthos in Google Cloud Console:
Fai clic sul servizio nell'elenco dei servizi.
Fai clic su Esegui il deployment di una nuova revisione.
Compila il modulo di deployment se necessario, ma assicurati che la casella di controllo Pubblica questa revisione immediatamente sia DISATTIVATA.
Fai clic su Esegui il deployment.
Fai clic su Gestisci traffico.
La nuova revisione è elencata, ma è impostata una percentuale pari a 0: al momento non sta pubblicando traffico. Nel modulo:
- Imposta la percentuale desiderata, ad esempio 5. Tieni presente che la percentuale della versione attualmente in pubblicazione viene automaticamente ridotta dello stesso importo.
- Fai clic su Salva.
- Ripeti questi passaggi di Gestione del traffico ma con percentuali modificate, aumentando la percentuale in base alle necessità della nuova revisione. Non è necessario eseguire nuovamente il deployment per modificare le percentuali di traffico.
Riga di comando
Per eseguire il deployment della revisione che vuoi implementare gradualmente, inizialmente impostandola in modo che non riceva traffico, utilizza il comando
update
con il parametro--no-traffic
:gcloud run deploy --image IMAGE --no-traffic
Sostituisci IMAGE con l'immagine di cui esegui il deployment.
Specifica la percentuale di traffico che la nuova revisione dovrà gestire, ad esempio il 5%:
gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
- Sostituisci SERVICE con il nome del servizio.
- Sostituisci REVISION con il nome della revisione che stai implementando gradualmente. Per specificare l'ultima revisione, puoi utilizzare
LATEST
, ad esempioLATEST=5
. - Sostituisci PERCENTAGE con la percentuale di traffico che vuoi inviare alla nuova revisione, ad esempio
5
per inviare il 5% del traffico.
Dopo che le prestazioni della revisione sono soddisfacenti, ripeti il passaggio
update-traffic
precedente, ma aumenta il valore percentuale come preferisci.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Apporta le modifiche alla configurazione che vuoi sul servizio, come descritto nelle varie pagine di configurazione, quindi specifica il nome della revisione che vuoi applicare alla nuova revisione:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE template: metadata: annotations: ... name: REVISION-NAME ``` Replace
- REVISION-NAME con il nome che vuoi assegnare alla nuova revisione.
Sotto l'attributo
spec
, individua e aggiorna l'attributotraffic
in modo che la nuova revisione pubblichi solo una piccola quantità di traffico:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-NEW percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Ricorda che la somma delle percentuali deve essere 100. Sostituisci
- REVISION-NEW con il nome della revisione che verrà implementata gradualmente.
- REVISION-FORMER con il nome della revisione attualmente pubblicata.
- PERCENT-NEW con la percentuale di traffico da inviare alla nuova revisione, ad esempio utilizza
10
per inviare il 10% del traffico a tale revisione. - PERCENT-FORMER con la percentuale di traffico che vuoi inviare alla revisione precedente
Suddivisione del traffico tra più revisioni
Per suddividere il traffico tra due o più revisioni:
console
Vai a Cloud Run for Anthos in Google Cloud Console:
Fai clic sul servizio nell'elenco dei servizi.
Fai clic su Gestisci traffico.
È elencata la nuova revisione attualmente in uso. Nel modulo:
- Imposta la percentuale di revisione attualmente in uso per la suddivisione desiderata.
- Seleziona una delle revisioni precedenti utilizzando l'elenco a discesa e imposta la suddivisione percentuale desiderata.
- Per suddividere il traffico tra più revisioni, fai clic su Aggiungi revisione, seleziona la revisione desiderata e imposta la percentuale sulla suddivisione desiderata.
- Fai clic su Salva.
Riga di comando
Specifica le revisioni e la percentuale di traffico per ciascuna revisione in un elenco delimitato da virgole:
gcloud run services update-traffic SERVICE --to-revisions LIST
Sostituisci:
- SERVICE con il nome del servizio.
- LIST con un elenco di revisioni delimitati da virgole che vuoi ricevere il traffico e la percentuale di traffico corrispondente, per un totale del 100%:
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEn
ad esempio,hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50
.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Nel tuo file locale, aggiorna l'attributo
traffic
in modo che la nuova revisione venga pubblicata solo per una piccola quantità di traffico:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-A percent: PERCENT-A - revisionName: REVISION-B percent: PERCENT-B - revisionName: REVISION-C percent: PERCENT-C
Ricorda che la somma delle percentuali deve essere 100. Sostituisci
- REVISION-A, REVISION-B, REVISION-C con le revisioni a cui stai assegnando il traffico.
- PERCENT-A, PERCENT-B, PERCENT-C con la percentuale della revisione corrispondente.
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud beta run services replace service.yaml
Invio di tutto il traffico all'ultima revisione
Quando esegui il deployment di una nuova revisione, puoi effettuare questa revisione e tutte quelle future pubblicano il 100% del traffico il prima possibile, sostituendo qualsiasi suddivisione indicata del traffico:
console
Vai a Cloud Run for Anthos in Google Cloud Console:
Fai clic sul servizio nell'elenco dei servizi.
Fai clic su Esegui il deployment di una nuova revisione.
Compila il modulo di deployment in base alle tue esigenze, assicurandoti di selezionare la casella di controllo Pubblica questa revisione immediatamente. Questa operazione sostituirà qualsiasi suddivisione esistente del traffico, con la nuova revisione che gestisce il 100% del traffico.
Fai clic su Esegui il deployment.
Riga di comando
Per inviare tutto il traffico alla revisione di cui è stato eseguito il deployment più di recente:
gcloud run services update-traffic SERVICE --to-latest
Sostituisci SERVICE con il nome del servizio.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Nel tuo file locale, aggiorna l'attributo
traffic
che si trova inspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - latestRevision: true percent: 100
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud beta run services replace service.yaml
Utilizzo di tag per test, migrazione del traffico e rollback
Dopo aver eseguito il deployment di un servizio, puoi creare una nuova revisione e assegnare un tag che ti consenta di accedere alla revisione in un URL specifico senza gestire il traffico. Puoi quindi utilizzare tale tag per eseguire la migrazione graduale del traffico alla revisione con tag e per eseguire il rollback di una revisione con tag.
Un caso d'uso comune per questa funzionalità è quello di utilizzarla per testare e verificare una nuova revisione di un servizio prima che pubblichi traffico, in questa sequenza tipica:
- Eseguire test di integrazione su un container durante lo sviluppo.
- Eseguire il deployment del container in un progetto Google Cloud che utilizzi solo per la gestione temporanea, la mancata gestione del traffico e il test rispetto a una revisione con tag.
- Esegui il deployment del deployment in produzione, senza pubblicare traffico, e testalo in base a una revisione con tag in produzione.
- Esegui la migrazione del traffico alla revisione con tag.
Deployment di una nuova revisione con tag
Per eseguire il deployment di una nuova revisione di un servizio esistente in produzione:
gcloud run deploy myservice --image IMAGE_URL --no-traffic --tag TAG_NAME
Sostituisci
- IMAGE_URL con l'URL della tua immagine
- TAG_NAME con il nome del tag in lettere minuscole
Il tag consente di testare direttamente la nuova revisione in un URL specifico, senza pubblicare traffico. L'URL inizia con il nome del tag che hai fornito: ad esempio, se hai utilizzato il nome del tag green
nel servizio myservice
, devi testare la revisione con tag all'URL https://green---myservice-abcdef.a.run.app
.
Migrazione del traffico a una revisione con tag
Dopo aver confermato che la nuova revisione funziona correttamente, puoi iniziare la migrazione del traffico utilizzando la console Google Cloud, la riga di comando gcloud o un file YAML:
console
Vai a Cloud Run for Anthos in Google Cloud Console:
Individua il servizio nell'elenco dei servizi e fai clic sul servizio:
Seleziona la revisione con tag a cui vuoi inviare il traffico:
Fai clic su Gestisci traffico.
Individua il nome della revisione taggato: è elencato ma con una percentuale impostata su 0: al momento non sta pubblicando traffico. Nel modulo Gestisci traffico*:
- Imposta la percentuale desiderata, ad esempio 5. Tieni presente che la percentuale della versione attualmente in pubblicazione viene automaticamente ridotta dello stesso importo.
- Fai clic su Salva.
- Nel corso di un periodo di ore o giorni, se necessario, ripeti questi passaggi per gestire il traffico, ma con percentuali modificate, aumentando la percentuale necessaria per la revisione con tag. Non è necessario eseguire nuovamente il deployment per modificare le percentuali di traffico.
Riga di comando
Per eseguire la migrazione del traffico a un tag di revisione specifico:
gcloud run deploy update-traffic myservice --to-tags TAG_NAME=TRAFFIC_PERCENT
Sostituisci
- TAG_NAME con il nome del tag verso cui stai eseguendo la migrazione del traffico
- TRAFFIC_PERCENT con la percentuale di traffico che vuoi che venga pubblicata dalla revisione con tag, ad esempio
1
.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Apporta le modifiche alla configurazione che preferisci sul servizio come descritto nelle varie pagine di configurazione.
Sotto l'attributo
spec
, individua e aggiorna l'attributotraffic
per la revisione con tag in modo che la revisione con tag pubblichi solo una piccola quantità di traffico:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION tag: TAG_NAME percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Ricorda che la somma delle percentuali deve essere 100. Sostituisci
- REVISION con il nome della revisione con tag.
- TAG_NAME con il nome del tag che stiamo implementando gradualmente.
- PERCENT-NEW con la percentuale di traffico da inviare alla revisione codificata; ad esempio, utilizza
10
per inviare il 10% del traffico a tale revisione. - REVISION-FORMER con il nome della revisione attualmente pubblicata.
- PERCENT-FORMER con la percentuale di traffico che vuoi inviare alla revisione precedente
Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:
gcloud beta run services replace service.yaml