Registrazione di un cluster

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:
  • Cloud Shell

    Per avviare Cloud Shell, esegui questi passaggi:

    1. Vai alla console Google Cloud.

      Console Google Cloud

    2. Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:

    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:

    1. Crea un account di servizio.
    2. Scarica una chiave privata come file JSON.
    3. Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.

    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:

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

  2. 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
    
  3. Installare Agones.

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

  1. Nella console Google Cloud, vai alla pagina Realm e cluster.

    Vai a Game Servers

  2. Fai clic su Aggiungi cluster di server di gioco.

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

  4. Fai clic su Continua.

  5. Nella casella ID cluster del server di gioco, inserisci un identificatore univoco per il cluster di server di gioco.

  6. Nell'elenco Cluster Kubernetes, seleziona un cluster Kubernetes con Agones installato.

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

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

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

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

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

  1. Nella console Google Cloud, vai alla pagina Realm e cluster.

    Vai a Game Servers

  2. Espandi un'area di autenticazione per visualizzare i cluster di server di gioco che fanno parte della stessa.

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

  1. Nella console Google Cloud, vai alla pagina Realm e cluster.

    Vai a Game Servers

  2. Espandi un'area di autenticazione per visualizzare i cluster di server di gioco che fanno parte della stessa.

  3. Nell'ultima colonna della tabella per l'area di autenticazione, fai clic sui puntini di sospensione 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.