Enregistrer un cluster

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

    Pour lancer Cloud Shell, procédez comme suit :

    1. Accédez à Google Cloud Console.

      Google Cloud Console

    2. Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :

    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 :

    1. Créer un compte de service
    2. Téléchargez une clé privée sous la forme d'un fichier JSON.
    3. 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.

    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 :

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

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

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

  1. Dans la console Google Cloud, accédez à la page Domaines et clusters.

    Accéder à Game Servers

  2. Cliquez sur Ajouter un cluster de Game Servers.

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

  4. Cliquez sur Continuer.

  5. Dans la zone ID de cluster de serveur de jeu, saisissez un identifiant unique pour ce cluster de serveur de jeu.

  6. Dans la liste Cluster Kubernetes, sélectionnez un cluster Kubernetes sur lequel Agones est installé.

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

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

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

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

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

  1. Dans la console Google Cloud, accédez à la page Domaines et clusters.

    Accéder à Game Servers

  2. Développez un domaine pour afficher les clusters de serveurs de jeu qui lui appartiennent.

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

  1. Dans la console Google Cloud, accédez à la page Domaines et clusters.

    Accéder à Game Servers

  2. Développez un domaine pour afficher les clusters de serveurs de jeu qui lui appartiennent.

  3. Dans la dernière colonne de tableau du domaine, cliquez sur les points de suspension , 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.