menu
arrow_back

Exécuter des serveurs de jeu dédiés dans Google Kubernetes Engine

Exécuter des serveurs de jeu dédiés dans Google Kubernetes Engine

Hours Minutes 9 Credits

GSP133

Google Cloud – Ateliers adaptés au rythme de chacun

L'empaquetage d'applications serveur sous forme de conteneurs gagne en popularité sur l'ensemble du paysage technologique, et les entreprises de jeux vidéo ne font pas exception. Nombre d'acteurs du jeu vidéo sont intéressés par le recours aux conteneurs pour améliorer l'utilisation des machines virtuelles, ainsi que pour exploiter le paradigme d'exécution isolé propre à cette technologie. En dépit d'un fort intérêt, de nombreuses entreprises ne savent pas par où commencer.

Cet atelier vous montrera comment utiliser une architecture extensible pour exécuter un serveur de jeux dédiés multijoueurs basés sur des sessions en temps réel à l'aide de Kubernetes sur Google Kubernetes Engine. Un processus de gestionnaire de scaling est configuré pour démarrer et arrêter automatiquement les instances de machine virtuelle en fonction des besoins. La configuration des machines en tant que nœuds Kubernetes est assurée automatiquement par des groupes d'instances gérés. La structure de jeu en ligne présentée dans cet atelier a été volontairement simplifiée. Le cas échéant, les domaines dans lesquels des éléments de complexité supplémentaires pourraient être utiles sont signalés.

Objectifs

  • Créer une image de conteneur d'un serveur de jeu dédié Open Source sous Linux en utilisant Docker. Cette image de conteneur n'ajoute que les fichiers binaires et les bibliothèques nécessaires à une image Linux de base.

  • Stocker les éléments sur un volume de disque persistant distinct en lecture seule, et les installer dans le conteneur au moment de l'exécution.

  • Installer et configurer les processus de base du programmeur à l'aide des API de Kubernetes et de Google Cloud pour augmenter ou réduire le nombre de nœuds en fonction de la demande.

Avant de commencer : télécharger le client de jeu

Dans cet atelier, vous allez créer un serveur de jeu, que vous testerez en vous connectant à un client de jeu. Le client de jeu OpenArena est disponible pour de nombreux systèmes d'exploitation, à partir du moment où vous pouvez l'installer sur votre machine locale. Si vous ne pouvez pas installer de client de jeu sur la machine que vous utilisez actuellement, suivez cet atelier lorsque vous utiliserez une machine sur laquelle vous pourrez installer un client de jeu. La connexion à un client de jeu pour valider votre travail n'est pas requise, vous pouvez donc choisir de ne pas vous connecter. Ainsi, lors de cet atelier, vous découvrirez comment créer un serveur de jeu dédié, simplement vous ne pourrez pas confirmer qu'il fonctionne.

Installez le client de jeu OpenArena sur votre ordinateur pour tester la connexion au serveur de jeu à la fin de l'atelier :

http://openarena.wikia.com/wiki/Manual/Install

Cette opération prendra un certain temps. Commencez l'atelier pendant le téléchargement, et vérifiez s'il est terminé au bout de 30 minutes environ. Ensuite, installez le client de jeu.

Présentation de l'architecture

La page Présentation de l'infrastructure de jeu dans le cloud décrit les composants de haut niveau communs à de nombreuses architectures de jeu en ligne. Dans cet atelier, vous mettez en œuvre un service d'interface de cluster de serveurs de jeu dédiés Kubernetes ainsi qu'un service de backend de gestionnaire de scaling. Une infrastructure de jeu complète en phase de production inclurait également de nombreux autres services d'interface et de backend qui sortent du cadre du présent atelier.

68b111517057146c.png

Contraintes liées à la construction

Afin de proposer un exemple à la fois instructif et relativement facile à étendre, cet atelier pose un ensemble de contraintes en ce qui concerne le jeu :

  • Il s'agit d'un jeu en temps réel sous forme de parties, avec un serveur de jeu dédié de référence simulant l'état du jeu.
  • Le serveur de jeu dédié communique via UDP.
  • Chaque processus de serveur de jeu dédié exécute une partie et une seule.
  • Tous les processus de serveur de jeu dédié génèrent approximativement la même charge.
  • Les correspondances ont une longueur maximale.
  • Le temps de démarrage d'un serveur de jeu dédié est négligeable, et il n'est pas nécessaire de "préchauffer" le processus de serveur de jeu dédié.
  • Il convient d'éviter, dans la mesure du possible, tout impact sur l'expérience client :
  • Une fois l'heure de pointe passée, il convient de ne pas terminer les parties prématurément pour réduire le nombre d'instances de VM.
  • Toutefois, si le processus du serveur de jeu dédié rencontre un problème et ne peut pas continuer, l'état de la partie est perdu et l'utilisateur doit rejoindre une autre partie.
  • Le processus de serveur de jeu dédié charge des éléments statiques à partir d'un disque, mais ne nécessite pas d'accès en écriture pour ces éléments.

Ces contraintes ont toutes des précédents dans l'industrie du jeu vidéo et correspondent à un cas d'utilisation concret.

Prérequis

Configuration de Qwiklabs

Avant de cliquer sur le bouton Start Lab (Démarrer l'atelier)

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur le bouton "Start Lab" (Démarrer l'atelier), indique combien de temps les ressources cloud resteront accessibles.

Cet atelier pratique Qwiklabs vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud Platform le temps de l'atelier.

Conditions requises

Pour réaliser cet atelier, vous devez remplir les conditions suivantes :

  • Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
  • Vous devez disposer de suffisamment de temps pour réaliser l'atelier en une fois.

Remarque : Si vous possédez déjà un compte ou un projet GCP, veillez à ne pas l'utiliser pour réaliser cet atelier.

Démarrer votre atelier et vous connecter à la console

  1. Cliquez sur le bouton Start Lab (Démarrer l'atelier). Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous verrez un panneau contenant les identifiants temporaires à utiliser pour cet atelier.

    Ouvrir la console Google

  2. Copiez le nom d'utilisateur, puis cliquez sur Open Google Console (Ouvrir la console Google). L'atelier affiche les ressources, puis ouvre l'onglet Choose an account (Sélectionner un compte).

    Conseil : Ouvrez les onglets dans des fenêtres distinctes, placées côte à côte.

  3. Sur la page "Choose an account" (Sélectionner un compte), cliquez sur Use Another Account (Utiliser un autre compte).

    Sélectionner un compte

  4. La page de connexion s'affiche. Collez le nom d'utilisateur que vous avez copié dans le panneau "Connection Details" (Informations de connexion). Copiez et collez ensuite le mot de passe.

    Important : Vous devez utiliser les identifiants fournis dans le panneau "Connection Details" (Informations de connexion), et non vos identifiants Qwiklabs. Si vous possédez un compte GCP, ne vous en servez pas pour cet atelier (vous éviterez ainsi que des frais ne vous soient facturés).

  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (car ce compte est temporaire).
    • Ne vous inscrivez pas à des essais gratuits.

La console GCP s'ouvre dans cet onglet après quelques instants.

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient des outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Google Cloud Shell offre un accès en ligne de commande à vos ressources GCP.

  1. Dans la console GCP, dans la barre d'outils située en haut à droite, cliquez sur le bouton Ouvrir Cloud Shell.

    Icône Cloud Shell

  2. Cliquez sur Continue (Continuez):

    cloudshell_continue

Il faut quelques instants pour mettre en service et se connecter à l'environnement. Lorsque vous êtes connecté, vous êtes déjà authentifié et le projet est défini sur votre PROJECT_ID. Par exemple:

Terminal Cloud Shell

gcloud est l'outil de ligne de commande associé à Google Cloud Platform. Pré-installé sur Cloud Shell, il est également compatible avec la saisie semi-automatique via la touche de tabulation.

Vous pouvez répertorier les noms des comptes actifs à l'aide de cette commande :

gcloud auth list

Résultat :

Credentialed accounts:
- <moncompte>@<mondomaine>.com (active)
	

Exemple de résultat :

Credentialed accounts:
- google1623327_student@qwiklabs.net
	

Pour répertorier les ID de projet, exécutez la commande suivante :

gcloud config list project
	

Résultat :

[core]
project = <ID_Projet>
	

Exemple de résultat :

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Join Qwiklabs to read the rest of this lab...and more!

  • Get temporary access to the Google Cloud Console.
  • Over 200 labs from beginner to advanced levels.
  • Bite-sized so you can learn at your own pace.
Join to Start This Lab