Cluster registrieren

Auf dieser Seite wird erläutert, wie Sie einen Game Servers-Cluster in einem Bereich registrieren, auflisten und ansehen.

Hinweis

Bevor Sie beginnen, sollten Sie sich mit den wichtigsten Konzepten in der Übersicht über Game Servers vertraut machen. Führen Sie außerdem die folgenden Aufgaben aus:

  • Prüfen Sie, ob die Game Services API aktiviert ist.
  • Game Services API aktivieren
  • Wählen Sie entweder eine Shell mit installierter gcloud-CLI aus oder verwenden Sie einen API-Client:
  • Cloud Shell

    So starten Sie Cloud Shell:

    1. Rufen Sie die Google Cloud Console auf.

      Google Cloud Console

    2. Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:

    In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet. Mit dieser Shell führen Sie gcloud-Befehle aus.

    Lokale Shell

    Installieren Sie die gcloud CLI.

    Prüfen Sie, ob Sie das gewünschte Standardprojekt für die Google Cloud CLI festgelegt haben. Andernfalls müssen Sie das Flag --project später für jeden Befehl explizit angeben:

    gcloud config list project
    

    Wenn Sie den folgenden Befehl nicht ausführen können, um ein Standardprojekt festzulegen, ersetzen Sie PROJECT_ID durch Ihre gewünschte Projekt-ID:

    gcloud config set project PROJECT_ID
    

    Führen Sie den folgenden Befehl aus, um Ihre Version der Google Cloud CLI zu prüfen. Für Game Servers ist mindestens die Version 306.0.0 der gcloud CLI erforderlich.

    gcloud version
    

    Aktualisieren Sie Ihre Installation mit dem folgenden Befehl:

    gcloud components update
    

    curl / PowerShell

    So verwenden Sie die REST API mit curl oder Windows PowerShell:

    1. Erstellen Sie ein Dienstkonto:
    2. Laden Sie einen privaten Schlüssel als JSON-Datei herunter.
    3. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

    Clientbibliothek

    Google Cloud Game Servers können mithilfe einer Clientbibliothek programmatisch gesteuert werden. Wie Sie die Bibliothek und die Authentifizierung verwenden, erfahren Sie in der Übersicht zu Clientbibliotheken.

Cluster registrieren

Sie müssen einen Game Servers-Bereich erstellt haben.

Wenn Sie keinen GKE-Cluster (Google Kubernetes Engine) mit Agones haben, gehen Sie so vor:

  1. Öffentlichen Google Kubernetes Engine-Cluster und eine Firewallregel für Agones erstellen Aktivieren Sie die Kubernetes Engine API.

    Beachten Sie, dass Game Servers keine privaten Cluster unterstützt.

  2. Prüfen Sie, ob die Firewallregel für Agones aktiviert ist:

    gcloud compute firewall-rules list --filter="name~'game-server.*'"
    

    Es sollte folgende Ausgabe angezeigt werden:

    NAME                               NETWORK  DIRECTION  PRIORITY  ALLOW    DENY  DISABLED
    game-server-firewall-test-cluster  default  INGRESS    1000      udp:7000-8000  False
    
  3. Agones installieren.

  4. Achten Sie darauf, dass die Versionen von Agones und Ihrem Kubernetes-Cluster kompatibel sind und Sie Agones im Namespace agones-system installiert haben. Weitere Informationen finden Sie unter Agones-Installation bestätigen.

Gameserver-Cluster registrieren

Console

  1. Rufen Sie in der Konsole die Seite Realms & Cluster auf.

    Zu Game Servers

  2. Klicken Sie auf Game Servers-Cluster hinzufügen.

  3. Wählen Sie in der Liste Auswahlmöglichkeiten von Realms den Bereich aus, zu dem der Gameservers-Cluster gehört. Sie können auf die Schaltfläche Bereich erstellen klicken, um gegebenenfalls einen Bereich zu erstellen.

  4. Klicken Sie auf Weiter.

  5. Geben Sie im Feld Game Server-Cluster-ID eine eindeutige Kennzeichnung für den Gameservers-Cluster ein.

  6. Wählen Sie in der Liste Kubernetes-Cluster einen Kubernetes-Cluster mit installiertem Agones aus.

  7. Klicken Sie auf Erstellen.

gcloud

Sie können einen Game Servers-Cluster über die Google Cloud CLI in einem Bereich registrieren.

Globalen Gameserver-Cluster registrieren

So registrieren Sie einen globalen Gameserver-Cluster:

  1. Führen Sie den folgenden Befehl aus und ersetzen Sie die Platzhalterwerte wie realmID durch die entsprechenden Werte:

    gcloud game servers clusters create gscID --realm=realmID --gke-cluster=gkeCluster --namespace=default --dry-run
    

    Die Ausgabe gibt den targetState zurück, sodass Sie vor der Registrierung eine Vorschau des neuen Clusters anzeigen können.

  2. Führen Sie den folgenden Befehl aus, um den globalen Cluster zu registrieren und zu erstellen:

    gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --namespace=default --no-dry-run
    

Regionalen Gameserver-Cluster registrieren

So registrieren Sie einen regionalen Gameserver-Cluster:

  1. Führen Sie den folgenden Befehl aus und ersetzen Sie die Platzhalterwerte wie realmID durch die entsprechenden Werte:

    gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --dry-run
    

    Die Ausgabe gibt den targetState zurück, sodass Sie vor der Erstellung eine Vorschau des neuen Clusters anzeigen können.

  2. Führen Sie den folgenden Befehl aus, um den regionalen Cluster zu registrieren und zu erstellen:

    gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --no-dry-run
    

Wenn Game Servers den Cluster, den Sie anhängen möchten, nicht validieren kann, wird möglicherweise der folgende Fehler angezeigt:

Cannot connect to the provided Kubernetes cluster "projects/project/locations/location/clusters/gkeCluster, check the name and make sure that the cluster exists

Achten Sie in diesem Fall darauf, dass gkeCluster richtig formatiert ist und der Cluster in project und location vorhanden ist.

Die Variablenplatzhalter entsprechen den folgenden Beschreibungen:

  • gscID ist eine eindeutige Kennung, die Sie für diesen Cluster angeben können.
  • realmID ist die eindeutige Kennung für den Bereich, in dem Sie den Cluster speichern möchten.
  • gkeCluster ist der voll qualifizierte Ressourcenpfad eines GKE-Clusters, z. B. projects/<projectId>/locations/<location>/clusters/<clusterId>.
  • region ist die Region des Clusters. Wählen Sie dieselbe Region aus wie die des übergeordneten Bereichs.

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • REALM_LOCATION: die Region für den Bereich oder global, in der dieser Cluster gespeichert werden soll
  • REALM_ID: die Kennung für den Bereich, in dem dieser Cluster gespeichert werden soll
  • GS_CLUSTER_ID: eine benutzerdefinierte Kennung für den Cluster
  • GKE_CLUSTER_LOCATION: die Region des GKE-Clusters
  • GKE_CLUSTER_ID: die Kennung für einen GKE-Cluster

JSON-Text der Anfrage:

{
  "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"
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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
}

Nachdem Sie einen Gameserver-Cluster erstellt haben, erstellt Game Servers nach Bedarf Agones Fleets und Autoscaler. Game Servers ändert die manuell erstellten Agones Fleets nicht.

Cluster auflisten

Console

  1. Rufen Sie in der Konsole die Seite Realms & Cluster auf.

    Zu Game Servers

  2. Erweitern Sie einen Bereich, um die Game Server-Cluster anzuzeigen, zu denen sie gehören.

  3. Mit dem Filterfeld können Sie die Bereiche und Clusterliste nach verschiedenen Attributen filtern.

gcloud

Sie können globale oder regionale Cluster mit der Google Cloud CLI auflisten.

Führen Sie den folgenden Befehl aus, um sowohl globale als auch regionale Cluster aufzulisten. Fügen Sie das optionale Flag --view=FULL hinzu, um die in den Clustern installierten Versionen von Agones und Kubernetes aufzurufen.

gcloud game servers clusters list [--view=FULL; default="BASIC"]

Um Cluster nur einer Region aufzulisten, führen Sie den folgenden Befehl aus und ersetzen Sie region durch die Region, für die Sie die Cluster auflisten möchten.

gcloud game servers clusters list --location=region [--view=FULL; default="BASIC"]

Führen Sie den folgenden Befehl aus, um alle Cluster in einem Bereich aufzulisten, und ersetzen Sie realmID durch den übergeordneten Bereich und region durch die Region, für die Sie die Cluster auflisten möchten:

gcloud game servers clusters list --realm=realmID --location=region [--view=FULL; default="BASIC"]

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • REALM_LOCATION: Region für den Bereich oder global
  • REALM_ID: die benutzerdefinierte Kennung für den Bereich

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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"
      }
    }
  ]
}

Details zu einem Cluster ansehen

Console

  1. Rufen Sie in der Konsole die Seite Realms & Cluster auf.

    Zu Game Servers

  2. Erweitern Sie einen Bereich, um die Game Server-Cluster anzuzeigen, zu denen sie gehören.

  3. Klicken Sie in der letzten Tabellenspalte für den Bereich auf die drei Punkte und wählen Sie Details ansehen aus.

gcloud

Mit der Google Cloud CLI können Sie Details zu einem Cluster abrufen, z. B. den Erstellungszeitpunkt oder GKE-Clusterdetails.

Führen Sie den folgenden Befehl aus, um die Details eines Clusters aufzurufen, und ersetzen Sie die Platzhalterwerte wie realmID durch die entsprechenden Werte:

gcloud game servers clusters describe gscID --realm realmID --location=region [--view=FULL; default="BASIC"]

Die Ausgabe enthält die Details des Clusters. Fügen Sie das optionale Flag --view=FULL hinzu, um die auf dem Cluster installierten Versionen von Agones und Kubernetes aufzurufen.

Die Variablenplatzhalter entsprechen den folgenden Beschreibungen:

  • gscID ist die eindeutige Kennung, die Sie für diesen Gameserver-Cluster angegeben haben.
  • realmID ist eine eindeutige Kennung für den Bereich, in dem Ihr Cluster gespeichert ist.
  • region ist die Region des Clusters. Wählen Sie dieselbe Region aus wie die des übergeordneten Bereichs.

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • REALM_LOCATION: Region für den Bereich oder global
  • REALM_ID: die benutzerdefinierte Kennung für den Bereich
  • GS_CLUSTER_ID: die benutzerdefinierte Kennung für den Cluster

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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"
  }
}

Cluster aktualisieren

gcloud

Zum Aktualisieren eines Felds für einen Cluster führen Sie den Befehl gcloud game servers clusters update aus, nachdem Sie die IDs für einen vorhandenen Cluster ersetzt haben. Mit dem folgenden Befehl wird das Beschreibungsfeld für einen Cluster aktualisiert.

gcloud game servers clusters update gscID \
    --realm=realmID --location=region \
    --description="My updated description" --no-dry-run

Die Flags für andere Clusterfelder finden Sie in der Referenz zu gcloud.

REST UND BEFEHLSZEILE

Im folgenden Beispiel wird das Feld description aktualisiert. Zum Aktualisieren anderer Felder fügen Sie die Feldnamen zum Abfrageparameter ?updateMask= und zum JSON-Text der Anfrage hinzu.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • REALM_LOCATION: Region für den Bereich oder global
  • REALM_ID: die Kennung für den Bereich
  • GS_CLUSTER_ID: die benutzerdefinierte Kennung für den Cluster

JSON-Text der Anfrage:

{
  "description": "My updated description"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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
}

Problembehebung

IAM-Berechtigungsfehler

Wenn die Berechtigungen nicht richtig festgelegt wurden, wird folgende Fehlermeldung angezeigt:

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

Führen Sie in diesem Fall den in diesem Abschnitt beschriebenen Schritt zum Festlegen von IAM-Berechtigungen aus.

Wenn Sie Game Servers-Ressourcen in einem Google Cloud-Projekt erstellen, erstellt Game Servers auch ein von Google verwaltetes Dienstkonto im Format serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com. Diesem Dienstkonto wird automatisch die vordefinierte Game Servers-Rolle roles/gameservices.serviceAgent zugewiesen. Diese Rolle gibt dem von Google verwalteten Dienstkonto die erforderlichen Berechtigungen zum Verwalten des GKE-Clusters, den Sie registrieren. Wenn Sie dies widerrufen, wird die obige Fehlermeldung angezeigt.

Der folgende Befehl zeigt die nötige Syntax, um dem Dienstkonto die Game Servers-Rolle roles/gameservices.serviceAgent zuzuweisen:

gcloud projects add-iam-policy-binding projectId --role roles/gameservices.serviceAgent --member serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com

Dabei gilt:

  • projectId ist die ID des Projekts. Sie erhalten projectId, indem Sie gcloud config get-value project ausführen.
  • projectNumber kann durch Ausführen von gcloud projects describe projectId abgerufen werden.

Weitere Informationen

Cluster löschen