Questa pagina spiega come registrare, elencare e visualizzare i dettagli di un cluster di server di gioco in un realm.
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.
Registrazione di un cluster
Assicurati di aver creato un real server di server.
Se non hai un cluster Google Kubernetes Engine (GKE) installato su Agones, procedi nel seguente modo:
Crea un cluster Google Kubernetes Engine pubblico e una regola firewall per Agones. Assicurati di abilitare l'API Kubernetes Engine.
Tieni presente che Game Servers non supporta i cluster privati.
Verifica che la regola firewall per Agones sia abilitata:
gcloud compute firewall-rules list --filter="name~'game-server.*'"
Dovresti vedere l'output seguente:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED game-server-firewall-test-cluster default INGRESS 1000 udp:7000-8000 False
Assicurati che le versioni del cluster Agones e Kubernetes siano conformi e di aver installato Agones nello spazio dei nomi
agones-system
(per ulteriori informazioni, consulta Conferma dell'installazione di Agones).
Registrazione di un cluster di server di gioco
console
In Google Cloud Console, vai alla pagina Realms &Clusters (Cluster).
Fai clic su Aggiungi cluster Game Server.
Seleziona l'area di autenticazione del cluster di server di gioco dall'elenco Aree di selezione . Puoi fare clic sul pulsante Crea un realm per creare un realm, se necessario.
Fai clic su Continua.
Nella casella ID cluster Game Servers, inserisci un identificatore univoco per questo cluster di server di gioco.
Nell'elenco Cluster Kubernetes, seleziona un cluster Kubernetes con Agones installato.
Fai clic su Crea.
gcloud
Puoi registrare un cluster Game Servers in un realm utilizzando l'interfaccia a riga di comando di Google Cloud.
Registrazione di un cluster server di gioco globale
Per registrare un cluster di server di gioco globale:
Esegui il comando seguente e sostituisci i valori segnaposto, ad esempio realmID, con i valori appropriati:
gcloud game servers clusters create gscID --realm=realmID --gke-cluster=gkeCluster --namespace=default --dry-run
L'output restituisce
targetState
in modo da poter visualizzare l'anteprima del nuovo cluster prima di registrarlo.Per registrare e creare il cluster globale, esegui il seguente comando:
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --namespace=default --no-dry-run
Registrazione di un cluster di server di gioco a livello di area geografica
Per registrare un cluster di server di gioco a livello di area geografica:
Esegui il comando seguente e sostituisci i valori segnaposto, ad esempio realmID, con i valori appropriati:
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --dry-run
L'output restituisce
targetState
in modo che tu possa visualizzare l'anteprima del nuovo cluster prima di crearlo.Per registrare e creare il cluster a livello di area geografica, esegui il comando seguente:
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --no-dry-run
Se Game Servers non riesce a convalidare il cluster che stai tentando di collegare, potrebbe essere visualizzato il seguente errore:
Cannot connect to the provided Kubernetes cluster "projects/project/locations/location/clusters/gkeCluster, check the name and make sure that the cluster exists
In questo caso, assicurati che gkeCluster sia formattato correttamente e che il cluster esista in project e all'indirizzo location.
I segnaposto delle variabili corrispondono alle seguenti descrizioni:
- gscID è un identificatore univoco che puoi specificare per questo cluster.
- realmID è l'identificatore univoco del realm in cui vuoi archiviare il cluster.
- gkeCluster è il percorso completo delle risorse di un cluster GKE, come
projects/<projectId>/locations/<location>/clusters/<clusterId>
. - region è l'area geografica per il cluster. Scegli la stessa area geografica del realm principale.
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: l'area geografica del regno, o
global
, in cui archiviare il cluster - REALM_ID: l'identificatore del realm in cui archiviare questo cluster
- GS_CLUSTER_ID: un identificatore definito dall'utente per il cluster
- GKE_CLUSTER_LOCATION: l'area geografica del cluster GKE
- GKE_CLUSTER_ID: l'identificatore per un cluster GKE
Corpo JSON richiesta:
{ "name": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/GS_CLUSTER_ID", "connectionInfo": { "namespace": "default", "gkeClusterReference": { "cluster": "projects/PROJECT_ID/locations/GKE_CLUSTER_LOCATION/clusters/GKE_CLUSTER_ID" } } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/REALM_LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/GS_CLUSTER_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Go
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Java
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Node.js
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Python
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Dopo aver creato un cluster di server di gioco, Game Servers crea i flori di Agones e i scaler automatici in base alle necessità. Game Servers non modifica le flotte di Agones create manualmente.
Cluster della scheda
console
In Google Cloud Console, vai alla pagina Realms &Clusters (Cluster).
Espandi un realm per visualizzare i cluster di server di gioco che appartengono.
Puoi utilizzare la casella di filtro per filtrare l'elenco Aree di autenticazione e cluster in base a proprietà diverse.
gcloud
Puoi elencare cluster globali o a livello di area geografica utilizzando l'interfaccia a riga di comando di Google Cloud.
Per elencare i cluster globali e a livello di area geografica, esegui il comando seguente. Aggiungi il flag --view=FULL
facoltativo per visualizzare le versioni di Agones e Kubernetes installate sui cluster.
gcloud game servers clusters list [--view=FULL; default="BASIC"]
Per elencare solo i cluster in un'area geografica, esegui il comando seguente e sostituisci region con l'area geografica in cui vuoi elencare i cluster:
gcloud game servers clusters list --location=region [--view=FULL; default="BASIC"]
Per elencare tutti i cluster in un realm, esegui il comando seguente e sostituisci realmID con il realm principale e region con l'area geografica in cui vuoi elencare i cluster:
gcloud game servers clusters list --realm=realmID --location=region [--view=FULL; default="BASIC"]
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: l'area geografica per il regno o
global
- REALM_ID: identificatore definito dall'utente per il realm
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "gameServerClusters": [ { "name": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/my-gs-cluster-1", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "connectionInfo": { "namespace": "default", "gkeClusterReference": { "cluster": "projects/PROJECT_ID/locations/GKE_CLUSTER_LOCATION/clusters/my-gke-cluster-1" } }, "etag": "8mBC7IJJFvY40k-rBabOOaGR6sSRG3dP6pI-frTuu9Y", "clusterState": { "agonesVersionInstalled": "1.15.0", "kubernetesVersionInstalled": "1.18.20-gke.900", "installationState": "AGONES_KUBERNETES_VERSION_SUPPORTED", "provider": "gke" } }, { "name": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/my-gs-cluster-2", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "connectionInfo": { "namespace": "default", "gkeClusterReference": { "cluster": "projects/PROJECT_ID/locations/GKE_CLUSTER_LOCATION/clusters/my-gke-cluster-2" } }, "etag": "8mBC7IJJFvY40k-rBabOOaGR6sSRG3dP6pI-frTuu9Y", "clusterState": { "agonesVersionInstalled": "1.15.0", "kubernetesVersionInstalled": "1.18.20-gke.900", "installationState": "AGONES_KUBERNETES_VERSION_SUPPORTED", "provider": "gke" } } ] }
C#
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Go
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Java
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Node.js
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Python
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Visualizzazione dei dettagli di un cluster
console
In Google Cloud Console, vai alla pagina Realms &Clusters (Cluster).
Espandi un realm per visualizzare i cluster di server di gioco che appartengono.
Nell'ultima colonna della tabella per il realm, fai clic sui puntini di sospensione more_vert e seleziona Visualizza dettagli.
gcloud
Puoi trovare i dettagli di un cluster, come il tempo di creazione o i dettagli del cluster GKE, utilizzando l'interfaccia a riga di comando di Google Cloud.
Per visualizzare i dettagli di un cluster, esegui il comando seguente e sostituisci i valori segnaposto, ad esempio realmID, con i valori appropriati:
gcloud game servers clusters describe gscID --realm realmID --location=region [--view=FULL; default="BASIC"]
L'output fornisce i dettagli del cluster. Aggiungi il flag --view=FULL
facoltativo per visualizzare le versioni di Agones e Kubernetes installate sul cluster.
I segnaposto delle variabili corrispondono alle seguenti descrizioni:
- gscID è l'identificatore univoco specificato per questo cluster di server di gioco.
- realmID è un identificatore univoco per il realm in cui è archiviato il cluster.
- region è l'area geografica per il cluster. Scegli la stessa area geografica del realm principale.
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: l'area geografica per il regno o
global
- REALM_ID: identificatore definito dall'utente per il realm
- GS_CLUSTER_ID: l'identificatore definito dall'utente per il cluster
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/GS_CLUSTER_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "connectionInfo": { "namespace": "default", "gkeClusterReference": { "cluster": "projects/PROJECT_ID/locations/GKE_CLUSTER_LOCATION/clusters/MY_GKE_CLUSTER" } }, "etag": "8mBC7IJJFvY40k-rBabOOaGR6sSRG3dP6pI-frTuu9Y", "clusterState": { "agonesVersionInstalled": "1.15.0", "kubernetesVersionInstalled": "1.18.20-gke.900", "installationState": "AGONES_KUBERNETES_VERSION_SUPPORTED", "provider": "gke" } }
C#
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Go
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Java
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Node.js
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Python
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Aggiornamento di un cluster
gcloud
Per aggiornare un campo per un cluster, esegui il comando gcloud game servers clusters
update
dopo aver sostituito gli identificatori per un cluster esistente. Il comando
seguente aggiorna il campo della descrizione per un cluster.
gcloud game servers clusters update gscID \ --realm=realmID --location=region \ --description="My updated description" --no-dry-run
Per trovare i flag per altri campi del cluster, consulta il
riferimento gcloud
.
REST &CMD LINE
L'esempio seguente aggiorna il campo description
. Per aggiornare altri campi, aggiungi i nomi dei campi al parametro di ricerca ?updateMask=
e richiedi il corpo JSON.
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: l'area geografica per il regno, oppure
global
- REALM_ID: identificatore del regno
- GS_CLUSTER_ID: l'identificatore definito dall'utente per il cluster
Corpo JSON richiesta:
{ "description": "My updated description" }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/REALM_LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_ID/locations/REALM_LOCATION/realms/REALM_ID/gameServerClusters/GS_CLUSTER_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Go
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Java
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Node.js
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Python
Per informazioni su come installare e utilizzare la libreria client per Game Servers, consulta la sezione Librerie client di Game Servers.
Risolvere i problemi
Errore autorizzazioni IAM
Se le autorizzazioni non sono impostate correttamente, verrà visualizzato il seguente errore:
Cannot connect to the provided Kubernetes cluster "projects/projectId/locations/location/clusters/gkeCluster", make sure that "service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com" has been granted the required permissions to access the cluster
In questo caso, completa il passaggio in questa sezione per l'impostazione delle autorizzazioni IAM.
Quando crei risorse di Game Servers in un progetto Google Cloud, Game Servers crea anche un Game-service account gestito da Google che ha il formato serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com
.
A questo account di servizio viene automaticamente assegnato il ruolo predefinito di Game Serversroles/gameservices.serviceAgent
. Questo ruolo fornisce all'account di servizio gestito da Google le autorizzazioni necessarie per gestire il cluster GKE che stai registrando. Se lo revochi, verrà visualizzato il messaggio di errore sopra riportato.
Il seguente comando mostra la sintassi per concedere all'account di servizio il ruolo roles/gameservices.serviceAgent
Server di gioco:
gcloud projects add-iam-policy-binding projectId --role roles/gameservices.serviceAgent --member serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com
dove:
- projectId è l'ID del progetto. Puoi ottenere
projectId eseguendo
gcloud config get-value project
. - Puoi recuperare projectNumber eseguendo
gcloud projects describe projectId
.
Passaggi successivi
Scopri come eliminare un cluster.