Questa pagina spiega come registrare, elencare e visualizzare i dettagli di un cluster di Game Servers in un'area di autenticazione.
Prima di iniziare
Prima di iniziare, ti consigliamo di acquisire familiarità 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 installata o utilizza un client API:
Vai alla console Google Cloud.
Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:
- Crea un account di servizio.
- Scarica una chiave privata come file JSON.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Cloud Shell
Per avviare Cloud Shell, esegui questi passaggi:
Una sessione di Cloud Shell si apre all'interno di un frame più in basso nella console.
Utilizza questa shell per eseguire i comandi gcloud
.
Shell locale
Installare l'interfaccia a riga di comando gcloud.
Verifica di aver impostato il progetto predefinito desiderato per Google Cloud CLI (in caso contrario dovrai specificare il flag --project
in modo esplicito per ogni comando in un secondo momento):
gcloud config list project
In caso contrario, puoi eseguire il seguente comando per impostare un progetto predefinito, sostituendo PROJECT_ID
con l'ID progetto desiderato :
gcloud config set project PROJECT_ID
Esegui il comando seguente per verificare la tua versione di Google Cloud CLI.
Game Servers richiede la versione 306.0.0
o successiva dellgcloud CLI.
gcloud version
Per aggiornare l'installazione, esegui il comando seguente:
gcloud components update
curl / PowerShell
Per utilizzare l'API REST con curl
o Windows PowerShell, segui questi passaggi:
Libreria client
I server di gioco Google Cloud possono essere controllati in modo programmatico utilizzando una libreria client. Per istruzioni sull'utilizzo della libreria e l'autenticazione, consulta la panoramica sulle librerie client.
Registrazione di un cluster
Assicurati di aver creato un Game Servers gioco.
Se non hai un cluster Google Kubernetes Engine (GKE) installato con 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 dei 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
Nella console Google Cloud, vai alla pagina Realm e cluster.
Fai clic su Aggiungi cluster di server di gioco.
Seleziona l'area di autenticazione dal quale il cluster di server di gioco apparterrà dall'elenco Realms da scegliere tra. Puoi fare clic sul pulsante Crea un realm, se necessario, per crearne uno.
Fai clic su Continua.
Nella casella ID cluster del server di gioco, inserisci un identificatore univoco per il 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 di Game Servers in un realm utilizzando Google Cloud CLI.
Registrazione di un cluster globale di server di gioco
Per registrare un cluster globale di server di gioco:
Esegui questo comando 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 della registrazione.Per registrare e creare il cluster globale, esegui questo 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 regione
Per registrare un cluster di server di gioco a livello di regione:
Esegui questo comando 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 da poter visualizzare l'anteprima del nuovo cluster prima di crearlo.Per registrare e creare il cluster a livello di regione, esegui questo comando:
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --no-dry-run
Se Game Servers non è in grado di convalidare il cluster che stai tentando di collegare, potresti visualizzare 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 location.
I segnaposto delle variabili corrispondono alle seguenti descrizioni:
- gscID è un identificatore univoco che puoi specificare per questo cluster.
- realmID è l'identificatore univoco del regno 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 del cluster. Scegli la stessa regione dell'area di autenticazione principale.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: la regione del regno, o
global
, in cui archiviare il cluster - REALM_ID: l'identificatore per l'area di autenticazione in cui archiviare il 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 }
Dopo aver creato un cluster di server di gioco, Game Servers crea i gruppi di parco risorse e i scaler automatici come richiesto. Game Servers non modifica i parchi risorse Agone creati manualmente.
Elencare i cluster
Console
Nella console Google Cloud, vai alla pagina Realm e cluster.
Espandi un'area di autenticazione per visualizzare i cluster di server di gioco che fanno parte della stessa.
Puoi utilizzare la casella di filtro per filtrare l'elenco di aree di autenticazione e cluster in base a diverse proprietà.
gcloud
Puoi elencare cluster globali o a livello di area geografica utilizzando Google Cloud CLI.
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 di una regione, 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'area di autenticazione, esegui il comando seguente e sostituisci realmID con l'area di autenticazione 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
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: la regione del regno o
global
- REALM_ID: l'identificatore definito dall'utente per l'area di autenticazione
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" } } ] }
Visualizzazione dei dettagli di un cluster
Console
Nella console Google Cloud, vai alla pagina Realm e cluster.
Espandi un'area di autenticazione per visualizzare i cluster di server di gioco che fanno parte della stessa.
Nell'ultima colonna della tabella per l'area di autenticazione, fai clic sui puntini di sospensione more_vert e seleziona Visualizza dettagli.
gcloud
Puoi trovare i dettagli relativi a un cluster, ad esempio la data e l'ora di creazione o i dettagli del cluster GKE, utilizzando Google Cloud CLI.
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 il cluster di server di gioco.
- realmID è un identificatore univoco del regno in cui è archiviato il cluster.
- region è l'area geografica del cluster. Scegli la stessa regione dell'area di autenticazione principale.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: la regione del regno o
global
- REALM_ID: l'identificatore definito dall'utente per l'area di autenticazione
- 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" } }
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 seguente comando 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 la documentazione di riferimento di gcloud
.
REST
Il seguente esempio 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 i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
- REALM_LOCATION: la regione del regno oppure
global
- REALM_ID: l'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 }
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 impostare le autorizzazioni IAM.
Quando crei risorse di Game Servers in un progetto Google Cloud, Game Servers crea anche un account di servizio gestito da Google che ha il formato serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com
.
A questo account di servizio viene concesso automaticamente il ruolo predefinito Game Servers
roles/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 revoca, verrà visualizzato il messaggio di errore riportato sopra.
Il seguente comando mostra la sintassi per concedere all'account di servizio il ruolo roles/gameservices.serviceAgent
di Game Servers:
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
. - È possibile recuperare projectNumber eseguendo
gcloud projects describe projectId
.
Passaggi successivi
Scopri come eliminare un cluster.