Cette page explique comment enregistrer, répertorier et afficher les détails d'un cluster Game Servers dans un domaine.
Avant de commencer
Avant de commencer, nous vous recommandons de vous familiariser avec les concepts clés de la page Présentation de Game Servers. Assurez-vous également que vous avez également effectué les tâches suivantes :
- Assurez-vous d'avoir activé l'API des services de jeux. Activer l'API Game Services
- Choisissez une interface système sur laquelle gcloud CLI est installée ou utilisez un client API:
Accédez à Google Cloud Console.
Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :
- Créer un compte de service
- Téléchargez une clé privée sous la forme d'un fichier JSON.
-
Définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
sur le chemin d'accès du fichier JSON contenant vos identifiants. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.
Cloud Shell
Pour lancer Cloud Shell, procédez comme suit :
Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console.
Cette interface système vous permet d'exécuter les commandes gcloud
.
Shell local
Installer gcloud CLI
Vérifiez que vous avez défini le projet par défaut souhaité pour Google Cloud CLI (sinon, vous devrez spécifier l'indicateur --project
explicitement pour chaque commande ultérieurement):
gcloud config list project
Si non, vous pouvez exécuter la commande suivante pour définir un projet par défaut, en remplaçant PROJECT_ID
par l'ID de projet souhaité :
gcloud config set project PROJECT_ID
Exécutez la commande suivante pour vérifier votre version de Google Cloud CLI.
Game Servers nécessite la version 306.0.0
ou ultérieure de gcloud CLI.
gcloud version
Pour mettre à jour votre installation, exécutez la commande suivante :
gcloud components update
curl/PowerShell
Pour utiliser l'API REST avec curl
ou Windows PowerShell, procédez comme suit :
Bibliothèque cliente
Google Cloud Game Servers peut être contrôlé par programmation à l'aide d'une bibliothèque cliente. Pour obtenir des instructions sur l'utilisation de la bibliothèque et l'authentification, consultez la page Présentation des bibliothèques clientes.
Enregistrer un cluster
Assurez-vous d'avoir créé un domaine Game Servers.
Si vous n'avez pas de cluster Google Kubernetes Engine (GKE) sur lequel Agones est installé, procédez comme suit :
Créez un cluster public Google Kubernetes Engine et une règle de pare-feu pour Agones. Veillez à activer l'API Kubernetes Engine.
Notez que Game Servers n'est pas compatible avec les clusters privés.
Vérifiez que la règle de pare-feu pour Agones est activée :
gcloud compute firewall-rules list --filter="name~'game-server.*'"
Vous devriez obtenir le résultat suivant :
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED game-server-firewall-test-cluster default INGRESS 1000 udp:7000-8000 False
Assurez-vous que les versions de cluster Agones et Kubernetes sont conformes et que vous avez installé Agones dans l'espace de noms
agones-system
(voir Confirmer l'installation d'Agones pour en savoir plus).
Enregistrer un cluster de serveurs de jeu
Console
Dans la console Google Cloud, accédez à la page Domaines et clusters.
Cliquez sur Ajouter un cluster de Game Servers.
Sélectionnez le domaine auquel le cluster de serveurs de jeu appartiendra dans la liste Domaines à choisir. Vous pouvez cliquer sur le bouton Créer un domaine pour créer un domaine si nécessaire.
Cliquez sur Continuer.
Dans la zone ID de cluster de serveur de jeu, saisissez un identifiant unique pour ce cluster de serveur de jeu.
Dans la liste Cluster Kubernetes, sélectionnez un cluster Kubernetes sur lequel Agones est installé.
Cliquez sur Créer.
gcloud
Vous pouvez enregistrer un cluster Game Servers dans un domaine à l'aide de Google Cloud CLI.
Enregistrer un cluster global de serveur de jeu
Pour enregistrer un cluster global de serveur de jeu, procédez comme suit :
Exécutez la commande suivante et remplacez les valeurs des espaces réservés tels que realmID par les valeurs appropriées :
gcloud game servers clusters create gscID --realm=realmID --gke-cluster=gkeCluster --namespace=default --dry-run
Le résultat renvoie le
targetState
pour vous permettre d'afficher un aperçu du nouveau cluster avant de l'enregistrer.Pour enregistrer et créer le cluster global, exécutez la commande suivante :
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --namespace=default --no-dry-run
Enregistrer un cluster régional de serveur de jeux
Pour enregistrer un cluster régional de serveur de jeux, procédez comme suit :
Exécutez la commande suivante et remplacez les valeurs des espaces réservés tels que realmID par les valeurs appropriées :
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --dry-run
Le résultat renvoie le
targetState
pour vous permettre d'afficher un aperçu du nouveau cluster avant de le créer.Pour enregistrer et créer le cluster régional, exécutez la commande suivante :
gcloud game servers clusters create gscID --realm=realmID --gke-cluster gkeCluster --location=region --namespace=default --no-dry-run
Si Game Servers ne parvient pas à valider le cluster que vous essayez d'associer, vous pouvez rencontrer l'erreur suivante :
Cannot connect to the provided Kubernetes cluster "projects/project/locations/location/clusters/gkeCluster, check the name and make sure that the cluster exists
Si tel est le cas, assurez-vous que gkeCluster est correctement formaté et que le cluster existe dans le project et dans location.
Les espaces réservés de variables correspondent aux descriptions suivantes :
- gscID est un identifiant unique que vous pouvez spécifier pour ce cluster.
- realmID est l'identifiant unique du domaine dans lequel vous souhaitez stocker le cluster.
- gkeCluster est le chemin d'accès complet à la ressource d'un cluster GKE, tel que
projects/<projectId>/locations/<location>/clusters/<clusterId>
. - region est la région du cluster. Choisissez la même région que le domaine parent.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
- PROJECT_ID : ID de votre projet Google Cloud répertorié dans les paramètres IAM.
- REALM_LOCATION : région du domaine, ou
global
, dans lequel stocker ce cluster - REALM_ID : identifiant du domaine dans lequel stocker ce cluster
- GS_CLUSTER_ID : identifiant défini par l'utilisateur pour le cluster
- GKE_CLUSTER_LOCATION : région du cluster GKE
- GKE_CLUSTER_ID : identifiant d'un cluster GKE
Corps JSON de la requête :
{ "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" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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 }
Après avoir créé un cluster de serveurs de jeux, Game Servers crée des flottes Agones et des autoscalers, si nécessaire. Game Servers ne modifie pas les flottes Agones créées manuellement.
Répertorier les clusters
Console
Dans la console Google Cloud, accédez à la page Domaines et clusters.
Développez un domaine pour afficher les clusters de serveurs de jeu qui lui appartiennent.
Vous pouvez utiliser la zone de filtre pour filtrer les domaines et la liste des clusters en fonction de différentes propriétés.
gcloud
Vous pouvez répertorier des clusters mondiaux ou régionaux à l'aide de Google Cloud CLI.
Pour répertorier les clusters globaux et régionaux, exécutez la commande suivante. Ajoutez l'indicateur facultatif --view=FULL
pour afficher les versions d'Agones et de Kubernetes installées sur les clusters.
gcloud game servers clusters list [--view=FULL; default="BASIC"]
Pour répertorier uniquement les clusters d'une région, exécutez la commande suivante et remplacez region par la région dans laquelle vous souhaitez répertorier les clusters :
gcloud game servers clusters list --location=region [--view=FULL; default="BASIC"]
Pour répertorier tous les clusters d'un domaine, exécutez la commande suivante et remplacez realmID par le domaine parent et region par la région dans laquelle vous souhaitez répertorier les clusters :
gcloud game servers clusters list --realm=realmID --location=region [--view=FULL; default="BASIC"]
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
- PROJECT_ID : ID de votre projet Google Cloud répertorié dans les paramètres IAM.
- REALM_LOCATION : région du domaine ou
global
- REALM_ID : identifiant défini par l'utilisateur pour le domaine
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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" } } ] }
Afficher les détails d'un cluster
Console
Dans la console Google Cloud, accédez à la page Domaines et clusters.
Développez un domaine pour afficher les clusters de serveurs de jeu qui lui appartiennent.
Dans la dernière colonne de tableau du domaine, cliquez sur les points de suspension more_vert, puis sélectionnez Afficher les détails.
gcloud
Vous pouvez trouver des informations sur un cluster, telles que l'heure de création ou les détails du cluster GKE, à l'aide de Google Cloud CLI.
Pour afficher les détails d'un cluster, exécutez la commande suivante en remplaçant les valeurs d'espace réservé, telles que realmID par les valeurs appropriées :
gcloud game servers clusters describe gscID --realm realmID --location=region [--view=FULL; default="BASIC"]
Le résultat vous donne les détails du cluster. Ajoutez l'indicateur facultatif --view=FULL
pour afficher les versions d'Agones et de Kubernetes installées sur le cluster.
Les espaces réservés de variables correspondent aux descriptions suivantes :
- gscID est l'identifiant unique que vous avez spécifié pour ce cluster de serveur de jeux.
- realmID est un identifiant unique pour le domaine dans lequel votre cluster est stocké.
- region est la région du cluster. Choisissez la même région que le domaine parent.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
- PROJECT_ID : ID de votre projet Google Cloud répertorié dans les paramètres IAM.
- REALM_LOCATION : région du domaine ou
global
- REALM_ID : identifiant défini par l'utilisateur pour le domaine
- GS_CLUSTER_ID : identifiant défini par l'utilisateur pour le cluster
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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" } }
Mettre à jour un cluster
gcloud
Pour mettre à jour un champ d'un cluster, exécutez la commande gcloud game servers clusters
update
après avoir remplacé les identifiants d'un cluster existant. La commande suivante met à jour le champ de description d'un cluster.
gcloud game servers clusters update gscID \ --realm=realmID --location=region \ --description="My updated description" --no-dry-run
Pour trouver les options associées à d'autres champs de cluster, consultez la documentation de référence sur gcloud
.
REST
L'exemple suivant met à jour le champ description
. Pour mettre à jour d'autres champs, ajoutez les noms des champs au paramètre de requête ?updateMask=
et demandez le corps JSON.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants:
- PROJECT_ID : ID de votre projet Google Cloud répertorié dans les paramètres IAM.
- REALM_LOCATION : région du domaine ou
global
- REALM_ID : identifiant du domaine
- GS_CLUSTER_ID : identifiant défini par l'utilisateur pour le cluster
Corps JSON de la requête :
{ "description": "My updated description" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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 }
Dépannage
Erreur d'autorisation IAM
Si les autorisations ne sont pas définies correctement, le message d'erreur suivant s'affiche :
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
Dans ce cas, effectuez l'étape décrite dans cette section pour définir les autorisations IAM.
Lorsque vous créez des ressources Game Servers dans un projet Google Cloud, Game Servers crée également un Compte de service géré par Google Game Servers qui se présente sous la forme serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com
.
Le rôle prédéfini Game Servers roles/gameservices.serviceAgent
est automatiquement attribué à ce compte de service. Ce rôle fournit au compte de service géré par Google les autorisations nécessaires pour gérer le cluster GKE que vous enregistrez. Si vous le révoquez, le message d'erreur ci-dessus s'affiche.
La commande suivante illustre la syntaxe permettant d'accorder au compte de service le rôle roles/gameservices.serviceAgent
Game Servers :
gcloud projects add-iam-policy-binding projectId --role roles/gameservices.serviceAgent --member serviceAccount:service-projectNumber@gcp-sa-gameservices.iam.gserviceaccount.com
où :
- projectId est l'ID du projet. Vous pouvez obtenir projectId en exécutant la commande
gcloud config get-value project
. - projectNumber peut être récupéré en exécutant la commande
gcloud projects describe projectId
.
Étapes suivantes
Découvrez comment supprimer un cluster.