Démarrage rapide

Dans ce guide de démarrage rapide, vous allez apprendre à travailler avec des domaines, des clusters, des déploiements, des configurations et des déploiements de Game Servers dans l'outil de ligne de commande gcloud.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Assurez-vous d'avoir activé l'API des services de jeux.
  5. Activer l'API des services de jeux

Choisir une interface système

Pour effectuer ce démarrage rapide, vous pouvez utiliser Cloud Shell ou votre interface système locale.

Cloud Shell est un environnement shell permettant de gérer les ressources hébergées sur Google Cloud. Cloud Shell est préinstallé avec l'outil de ligne de commande gcloud. L'outil gcloud fournit l'interface de ligne de commande principale pour Game Servers.

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.

Interface système locale

Pour installer gcloud, installez le SDK Cloud, qui inclut l'outil de ligne de commande gcloud.

Vérifiez que vous avez défini le projet par défaut souhaité pour l'outil de ligne de commande gcloud. Sinon, vous devrez spécifier explicitement l'option --project 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 du SDK Google Cloud. Game Servers nécessite la version 306.0.0 ou une version ultérieure du SDK.

gcloud version

Pour mettre à jour votre installation, exécutez la commande suivante :

gcloud components update

Si vous sélectionnez l'interface système locale, vous devrez peut-être installer kubectl :

gcloud components install kubectl

Créer un cluster Google Kubernetes Engine

Pour créer un cluster Google Kubernetes Engine, procédez comme suit :

  1. Dans Cloud Console, activez l'API Kubernetes Engine.

    Activer l'API

  2. Exécutez la commande suivante pour créer un cluster économique avec un nœud dans la zone us-central1-a:

    gcloud container clusters create gcgs-quickstart \
    --cluster-version=1.20 \
    --tags=game-server \
    --scopes=gke-default \
    --num-nodes=1 \
    --no-enable-autoupgrade \
    --machine-type=e2-standard-2 \
    --zone=us-central1-a
    
  3. Exécutez la commande suivante pour récupérer les identifiants du cluster GKE que vous avez créé à l'étape précédente :

    gcloud container clusters get-credentials gcgs-quickstart --zone=us-central1-a
    

Installer Agones sur GKE

Dans cette section, vous allez installer la plate-forme d'infrastructure de jeu Open Source Agones. Pour installer Agones, procédez comme suit :

  1. Exécutez la commande suivante pour créer l'espace de noms agones-system :

    kubectl create namespace agones-system
    
  2. Exécutez la commande suivante pour installer Agones :

    kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.17.0/install/yaml/install.yaml
    
  3. Vous pouvez vérifier que le système Agones est en cours d'exécution en vérifiant l'état des pods Kubernetes :

    kubectl get --namespace agones-system pods
    

    Tous les pods doivent être à l'état Running :

    NAME                                 READY   STATUS    RESTARTS   AGE
    agones-allocator-6694dcc89-7r75d     1/1     Running   0          28s
    agones-allocator-6694dcc89-m7ghq     1/1     Running   0          28s
    agones-allocator-6694dcc89-qp6cm     1/1     Running   0          28s
    agones-controller-56c98db844-llzzc   1/1     Running   0          22s
    agones-ping-d9d74c5c6-8kmt6          1/1     Running   0          24s
    agones-ping-d9d74c5c6-xwn4h          1/1     Running   0          24s
    

Créer des ressources Game Servers

Pour créer des ressources Game Servers, procédez comme suit :

  1. Créez un domaine au même emplacement que le cluster GKE :

    gcloud game servers realms create realm-quickstart --time-zone EST --location us-central1
    
  2. Enregistrez votre cluster GKE Agones avec Game Servers et associez-le au domaine créé à l'étape précédente :

    gcloud game servers clusters create cluster-quickstart \
    --realm=realm-quickstart \
    --gke-cluster locations/us-central1-a/clusters/gcgs-quickstart \
    --namespace=default \
    --location us-central1 \
    --no-dry-run
    
  3. Créez un déploiement de serveur de jeu que vous utiliserez pour stocker toutes vos configurations de serveur de jeu, puis déployez-le sur les clusters de votre serveur de jeu :

    gcloud game servers deployments create deployment-quickstart
    

    Maintenant que vous avez un déploiement de serveur de jeu, vous pouvez lui ajouter une configuration de serveur de jeu à l'aide de l'outil gcloud.

  4. Copiez l'exemple de fichier manifeste de spécification de parc Agones suivant dans un nouveau fichier nommé fleet_configs.yaml dans le répertoire actuel :

    - name: fleet-spec-1
      fleetSpec:
        replicas: 2
        template:
          metadata:
            labels:
              foo: bar
          spec:
            ports:
            - name: default
              portPolicy: Dynamic
              containerPort: 7654
            template:
              spec:
                containers:
                - name: simple-udp
                  image: gcr.io/agones-images/udp-server:0.21
    
  5. Pour créer la configuration du serveur de jeu, exécutez la commande suivante :

    gcloud game servers configs create config-1 --deployment deployment-quickstart --fleet-configs-file fleet_configs.yaml
    
  6. Pour mettre à jour le déploiement, exécutez la commande suivante :

    gcloud game servers deployments update-rollout deployment-quickstart --default-config config-1 --no-dry-run
    
  7. Pour valider le déploiement d'un parc sous un espace de noms par défaut, exécutez la commande suivante :

    kubectl get fleet
    

    Vous trouverez ci-dessous le résultat attendu :

    NAME                                     SCHEDULING   DESIRED   CURRENT   ALLOCATED   READY   AGE
    fleet-deployment-quickstart-config-1   Packed       2         2         0           2       4s
    

    Le résultat confirme que vous avez déployé un parc avec deux instances dupliquées de serveurs UDP simples dans votre cluster et qu'elles sont prêtes à accepter des connexions.

Tester la connectivité au serveur UDP

Pour tester la connectivité au serveur UDP, procédez comme suit :

  1. Créez une règle de pare-feu pour ouvrir les ports UDP requis pour se connecter au cluster :

    gcloud compute firewall-rules create gcgs-quickstart-firewall \
    --allow udp:7000-8000 \
    --target-tags game-server \
    --description "Firewall to allow game server udp traffic"
    
  2. Obtenez ensuite l'adresse IP et le numéro de port d'un serveur de jeu individuel :

    kubectl get gameserver
    

    La commande renvoie un résultat semblable à celui-ci :

    NAME                                                 STATE   ADDRESS          PORT   NODE                                             AGE
    fleet-deployment-quickstart-config-1-nndvr-5gvch   Ready   IP_ADDRESS   PORT_NUMBER   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    fleet-deployment-quickstart-config-1-nndvr-vqwpl   Ready   IP_ADDRESS   PORT_NUMBER   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    
  3. Pour tester la connectivité, vous exécutez la commande Netcat. Pour installer Netcat sous Linux, exécutez la commande suivante :

    sudo apt install netcat
    
  4. Pour lancer le test, exécutez la commande suivante :

    nc -u IP_ADDRESS PORT_NUMBER
    
  5. Ensuite, saisissez Hello et la commande renvoie une sortie semblable à ce qui suit :

    Hello
    > ACK: Hello
    
  6. Appuyez sur les touches Ctrl+C pour arrêter le test.

(Facultatif) Déployez un serveur pour un jeu Open Source.

Vous pouvez mettre à jour le déploiement pour déployer un parc avec deux instances dupliquées de serveurs de jeu Open Source dans votre cluster. Ces serveurs de jeu sont compatibles avec la version multijoueur du jeu de course SuperTuxKart.

  1. Écraser le fichier fleet_configs.yaml existant avec la spécification de flotte Agones suivante:

    - name: supertuxkart
      fleetSpec:
        replicas: 2
        template:
          metadata:
            labels:
              version: "1.0"
          spec:
            ports:
            - name: default
              containerPort: 8080
            health:
              initialDelaySeconds: 30
              periodSeconds: 60
            template:
              spec:
                containers:
                - name: supertuxkart
                  image: gcr.io/agones-images/supertuxkart-example:0.3
    
  2. Vous ne pouvez pas mettre à jour une configuration de serveur de jeu existante, car elle est immuable. Créez une configuration qui référence le fichier manifeste de la spécification de parc mise à jour:

    gcloud game servers configs create stk-1 --deployment deployment-quickstart --fleet-configs-file fleet_configs.yaml
    

  3. Mettez à jour le déploiement avec la nouvelle configuration:

    gcloud game servers deployments update-rollout deployment-quickstart --default-config stk-1 --no-dry-run
    

  4. Récupérez l'adresse IP et le numéro de port d'un serveur de jeu individuel :

    kubectl get gameserver
    

  5. Téléchargez un client SuperTuxKart.

  6. Lancez le client SuperTuxKart.

  7. Cliquez sur le bouton En ligne dans le menu principal, puis sur le bouton Saisir l'adresse du serveur.

  8. Saisissez l'adresse IP et le numéro de port d'un serveur de jeu individuel (à une étape précédente).

  9. Cliquez sur Lancer la course pour lancer le jeu.

Vous pouvez télécharger le client SuperTuxKart sur d'autres plates-formes pour vous connecter au même serveur et participer à la course.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud :

Si vous ne souhaitez conserver aucune des ressources créées dans ce guide de démarrage rapide, vous pouvez supprimer le projet :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Si vous souhaitez conserver le projet, procédez comme suit pour supprimer manuellement les ressources que vous avez créées dans ce guide de démarrage rapide :

  1. Pour supprimer la règle de pare-feu, exécutez la commande suivante :

    gcloud compute firewall-rules delete gcgs-quickstart-firewall
    
  2. Pour effacer le déploiement par défaut, exécutez la commande suivante :

    gcloud game servers deployments update-rollout deployment-quickstart --clear-default-config --no-dry-run
    
  3. Pour supprimer la configuration du serveur de jeu, exécutez la commande suivante :

    gcloud game servers configs delete config-1 --deployment deployment-quickstart
    

    Si vous avez terminé la section facultative, supprimez la configuration de serveur de jeu supplémentaire:

    gcloud game servers configs delete stk-1 --deployment deployment-quickstart
    
  4. Pour supprimer le déploiement du serveur de jeu, exécutez la commande suivante :

    gcloud game servers deployments delete deployment-quickstart
    
  5. Pour supprimer le cluster du serveur de jeu, exécutez la commande suivante :

    gcloud game servers clusters delete cluster-quickstart --realm=realm-quickstart --location=us-central1 --no-dry-run
    
  6. Pour supprimer le domaine, exécutez la commande suivante :

    gcloud game servers realms delete realm-quickstart --location=us-central1
    
  7. Pour désactiver l'API des services de jeux, exécutez la commande suivante :

    gcloud services disable gameservices.googleapis.com
    
  8. Pour supprimer le cluster GKE, exécutez la commande suivante :

    gcloud container clusters delete gcgs-quickstart --zone=us-central1-a
    

Étape suivante

Pour une introduction technique aux concepts de Game Servers, consultez la page Présentation de Game Servers.

Pour en savoir plus sur les tâches spécifiques de Game Servers, consultez les guides pratiques.

Consultez lesTerraform déploiementexemple de projet (Installation de Python groupée).