In questa pagina vengono descritte due diverse opzioni per l'implementazione di una nuova configurazione di Game Servers con fase canary. Nella fase canary, esegui il deployment della nuova configurazione per un piccolo insieme di clienti. In questo modo puoi identificare potenziali problemi senza avere impatto su tutti i tuoi utenti.
Il primo modo è utilizzare un'area geografica canary. La configurazione di questa opzione è più semplice, ma un'implementazione non valida influisce sull'intera area geografica. L'altra opzione consiste nel creare un deployment canary. Questa opzione è più flessibile, ma è anche un processo più complesso da gestire.
Prima di iniziare
Prima di iniziare, ti consigliamo di familiarizzare con i concetti principali nella panoramica dei server di gioco. Assicurati di aver eseguito anche le seguenti attività:
- Assicurati di aver attivato l'API Game Services. Abilita l'API Game Services
- Scegli una shell con gcloud CLI installato o utilizza un client API:
Vai a Google Cloud Console.
Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:
- Creare un account di servizio.
- Scarica una chiave privata come file JSON.
-
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file JSON che contiene la chiave dell'account di servizio. Questa variabile si applica solo alla sessione shell corrente, quindi se apri una nuova sessione, impostala di nuovo.
Cloud Shell
Per avviare Cloud Shell, esegui questi passaggi:
Una sessione di Cloud Shell si apre all'interno di un frame inferiore nella console.
Puoi utilizzare questa shell per eseguire comandi gcloud
.
Profilo locale
Installa l'interfaccia a riga di comando gcloud.
Verifica di avere impostato il progetto predefinito desiderato per l'interfaccia a riga di comando di Google Cloud, altrimenti dovrai specificare esplicitamente il flag --project
per ogni comando in un secondo momento:
gcloud config list project
In caso contrario, puoi eseguire il comando seguente per impostare un progetto predefinito, sostituendo PROJECT_ID
con l'ID progetto desiderato :
gcloud config set project PROJECT_ID
Esegui questo comando per verificare la tua versione dell'interfaccia a riga di comando di Google Cloud.
Game Servers richiede la versione 306.0.0
o successiva dell'interfaccia a riga di comando gcloud.
gcloud version
Per aggiornare l'installazione, esegui questo comando:
gcloud components update
curl / PowerShell
Per utilizzare l'API REST con curl
o Windows PowerShell, procedi
come segue:
Libreria client
I server di gioco Google Cloud possono essere controllati a livello di programmazione mediante una libreria client. Consulta la Panoramica sulle librerie client per istruzioni sull'utilizzo della libreria e sull'autenticazione.
Verificare lo stato di un'implementazione
Assicurati di verificare l'integrità dei tuoi server in vari momenti durante l'implementazione. Puoi utilizzare i dati raccolti per decidere se è sicuro continuare l'implementazione. Se i controlli di integrità rivelano un problema, è meglio mettere in pausa o annullare l'implementazione.
Puoi utilizzare i seguenti consigli per verificare lo stato di un'implementazione:
Assicurati che lo stato delle singole istanze di server di gioco sia
Ready
.Verifica che Agones possa allocare e gestire l'intero ciclo di vita di un
GameServer
. Assicurati che sia il deployment principale che il deployment canaryGameServers
abbiano le stesse etichette che corrispondono al selettoreGameServerAllocation
required
previsto, in modo che il tuo autore delle corrispondenze non debba apportare una modifica all'allocazione dal deployment canary. Se vuoi, puoi eseguire l'assegnazione preferenziale dal parco canary utilizzando l'attributo "preferred" in una specificaGameServerAllocation
.Monitora e assicurati che le metriche di sistema e di gioco pertinenti nel deployment non indichino una riduzione delle prestazioni.
Implementazione in una regione canary
Game Servers consente di sostituire una configurazione in uno o più realm. Assicurati che i cluster nell'area geografica canary si trovino in un realm separato.
In questo esempio, il "regno" australiano è il regno canary.
Per impostare v2
come configurazione attiva nell'area di autenticazione australia
:
Copia il seguente codice in un file:
- realmsSelector: realms: - projects/games/locations/australia-southeast1/realms/australia configVersion: v2
Per applicare le modifiche, esegui il comando seguente:
gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile --no-dry-run
dove configOverrideFile è il percorso del file con configurazione di sostituzione.
Dopo aver verificato che l'area geografica canary è in stato integro, esegui il comando seguente per eseguire il deployment della nuova versione ovunque:
gcloud game servers deployments update-rollout stk --default-config "v2" --no-dry-run
Al termine dell'operazione, la configurazione di v2
viene implementata ovunque.
Ora correggi l'override eseguendo questo comando:
gcloud game servers deployments update-rollout stk --no-dry-run --clear-config-overrides
Implementazione in un deployment canary
Puoi utilizzare un deployment separato per testare la configurazione. Inizialmente non esiste un deployment canary dedicato.
Per prima cosa, crea il deployment canary:
gcloud game servers deployments create canary
Assicurati che il selettore utilizzato in GameServerAllocation sia in grado di selezionare GameServers sia dal tuo parco risorse principale sia dal parco canary, in modo che non siano richieste modifiche alle strategie di allocazione correnti.
Infine, esegui il comando seguente per creare una configurazione
v1
identica a la configurazione attiva nel deployment non canary:gcloud game servers configs create v1 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
dove fleetSpecFile è il percorso del file che contiene la specifica del parco risorse. scalingConfigFile è il percorso del file che contiene tutte le configurazioni di scalabilità.
Ti consigliamo di impostare le configurazioni di scalabilità in modo che i gruppi canary siano {0}molto più piccoli dei normali veicoli.
Esegui questo comando per aggiornare l'implementazione canary in modo che la configurazione
v1
venga implementata ovunque:gcloud game servers deployments update-rollout canary --default-config v1 --no-dry-run
Verifica che i gruppi canary siano integri.
Esegui il comando seguente per creare la configurazione
v2
nel deployment canary:gcloud game servers configs create v2 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
dove fleetSpecFile è il percorso del file che contiene la specifica del parco risorse. scalingConfigFile è il percorso del file che contiene tutte le configurazioni di scalabilità. Ti consigliamo di configurare gruppi canary di dimensioni ridotte.
Esegui il comando seguente per implementare la configurazione
v2
nel deployment canary:gcloud game servers deployments update-rollout canary --default-config v2 --no-dry-run
Verifica che i gruppi canary siano integri.
Esegui il comando seguente per implementare la configurazione
v2
nel deployment principale:gcloud game servers deployments update-rollout stk --default-config v2 --no-dry-run
Verifica che il parco risorse sia integro. In questa fase, il deployment
v2
viene implementato ovunque.Pulisci il deployment canary.
Cancella l'implementazione per il deployment canary eseguendo:
gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
Esegui il comando seguente per eliminare la configurazione 'v1':
gcloud game servers configs delete v1 --deployment=canary
Elimina la configurazione 'v2' eseguendo:
gcloud game servers configs delete v2 --deployment=canary
Rimuovi il deployment canary eseguendo:
gcloud game servers deployments delete canary
Per un controllo più granulare su un deployment, puoi implementare una configurazione per le aree di autenticazione selezionate utilizzando gli override, prima di impostare la configurazione come predefinita. Segui la stessa procedura per implementare la versione canary in modo più graduale.
Puoi saltare i primi tre passaggi e l'ultimo mantenendo un deployment canary in piedi. Consigliamo di adottare questo approccio per implementazioni frequenti e regolari.