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:
Rufen Sie die Google Cloud Console auf.
Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:
- Erstellen Sie ein Dienstkonto:
- Laden Sie einen privaten Schlüssel als JSON-Datei herunter.
-
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
So starten Sie Cloud Shell:
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:
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:
Ö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.
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
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
Rufen Sie in der Google Cloud Console die Seite Realms & Cluster auf.
Klicken Sie auf Game Servers-Cluster hinzufügen.
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.
Klicken Sie auf Weiter.
Geben Sie im Feld Game Server-Cluster-ID eine eindeutige Kennzeichnung für den Gameservers-Cluster ein.
Wählen Sie in der Liste Kubernetes-Cluster einen Kubernetes-Cluster mit installiertem Agones aus.
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:
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.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:
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.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
Rufen Sie in der Google Cloud Console die Seite Realms & Cluster auf.
Erweitern Sie einen Bereich, um die Game Server-Cluster anzuzeigen, zu denen sie gehören.
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
Rufen Sie in der Google Cloud Console die Seite Realms & Cluster auf.
Erweitern Sie einen Bereich, um die Game Server-Cluster anzuzeigen, zu denen sie gehören.
Klicken Sie in der letzten Tabellenspalte für den Bereich auf die drei Punkte more_vert 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.