Déployer un serveur pour un jeu Open Source
Dans ce guide de démarrage rapide, vous allez apprendre à utiliser les domaines, les clusters, les déploiements, les configurations et les déploiements de Game Servers à l'aide de Google Cloud CLI.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :
Avant de commencer
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Assurez-vous d'avoir activé l'API des services de jeux. Activer l'API Game Services
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
. La gcloud CLI fournit l'interface de ligne de commande principale pour Game Servers.
Cloud Shell
Pour lancer Cloud Shell, procédez comme suit :
Accédez à Google Cloud Console.
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
Si vous sélectionnez l'interface système locale, vous devrez peut-être installer l'outil de ligne de commande Kubernetes kubectl
:
gcloud components install kubectl
Créer un cluster Google Kubernetes Engine
Pour créer un cluster Google Kubernetes Engine, procédez comme suit :
Dans Cloud Console, activez l'API Kubernetes Engine.
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.23 \ --tags=game-server \ --scopes=gke-default \ --num-nodes=1 \ --no-enable-autoupgrade \ --machine-type=e2-standard-2 \ --zone=us-central1-a
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
kubectl
utilise ces identifiants pour exécuter des commandes sur vos clusters Kubernetes. Pour en savoir plus, consultez la page Configurer l'accès au cluster pour kubectl.
Installer Agones sur GKE
Dans cette section, vous installez la plate-forme d'infrastructure de jeu Open Source Agones. Pour installer Agones, procédez comme suit :
Exécutez la commande suivante pour créer l'espace de noms
agones-system
:kubectl create namespace agones-system
Exécutez la commande suivante pour installer Agones :
kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.26.0/install/yaml/install.yaml
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 :
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
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
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 disposez d'un déploiement de serveur de jeu, vous pouvez y ajouter une configuration de serveur de jeu à l'aide de gcloud CLI.
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-game-server image: gcr.io/agones-images/simple-game-server:0.3
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
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
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 de jeu
Pour tester la connectivité au serveur de jeu:
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"
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
Pour tester la connectivité, vous exécutez la commande Netcat. Pour installer Netcat sous Linux, exécutez la commande suivante :
sudo apt install netcat
Pour lancer le test, exécutez la commande suivante :
nc -u IP_ADDRESS PORT_NUMBER
Ensuite, saisissez
Hello
et la commande renvoie une sortie semblable à ce qui suit :Hello > ACK: Hello
Utilisez les touches Ctrl+C pour arrêter le test.
(Facultatif) Déployer un serveur pour un titre de 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 jeux sont compatibles avec la version multijoueur du jeu de course SuperTuxKart.
Remplacez le fichier
fleet_configs.yaml
existant par la spécification de parc 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
Vous ne pouvez pas mettre à jour une configuration de serveurs de jeu existante, car elles sont immuables. 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
Mettez à jour le déploiement avec la nouvelle configuration :
gcloud game servers deployments update-rollout deployment-quickstart --default-config stk-1 --no-dry-run
Récupérez l'adresse IP et le numéro de port d'un serveur de jeu individuel :
kubectl get gameserver
Démarrez le client SuperTuxKart.
Cliquez sur le bouton En ligne dans le menu principal, puis sur le bouton Saisir l'adresse du serveur.
Saisissez l'adresse IP et le numéro de port d'un serveur de jeu individuel (défini à une étape précédente).
Cliquez sur Démarrer 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 sur cette page ne soient facturées sur votre compte Google Cloud, procédez comme suit :
Si vous ne souhaitez conserver aucune des ressources créées dans ce guide de démarrage rapide, vous pouvez supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
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 :
Pour supprimer la règle de pare-feu, exécutez la commande suivante :
gcloud compute firewall-rules delete gcgs-quickstart-firewall
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
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
Pour supprimer le déploiement du serveur de jeu, exécutez la commande suivante :
gcloud game servers deployments delete deployment-quickstart
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
Pour supprimer le domaine, exécutez la commande suivante :
gcloud game servers realms delete realm-quickstart --location=us-central1
Pour désactiver l'API des services de jeux, exécutez la commande suivante :
gcloud services disable gameservices.googleapis.com
Pour supprimer le cluster GKE, exécutez la commande suivante :
gcloud container clusters delete gcgs-quickstart --zone=us-central1-a
Étapes suivantes
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.
Consulter les exemples de projet de déploiement Terraform