Vous contrôlez les clusters de serveurs de jeu à l'aide des configurations globales de serveur de jeu, en définissant des règles pour l'emplacement et le nombre de serveurs à démarrer, ainsi que le binaire de serveur de jeu à déployer. Game Servers crée automatiquement des parcs Agones en fonction de déploiements gérés de manière centralisée, ce qui garantit leur déploiement automatique et en toute sécurité sur tous les clusters gérés. En particulier, les sessions de jeu en cours ne sont jamais interrompues, car le serveur de jeu en cours d'utilisation n'est jamais arrêté brusquement.
Ressources Game Servers
Cette section décrit les principales ressources avec lesquelles vous interagissez pour gérer Game Servers. La figure suivante montre comment ces ressources sont utilisées pour déployer un projet de jeu.
Figure 1. Exemple de déploiement d'un projet de jeu sur Game Servers
Projet Game Servers
Un seul environnement, tel que production ou testing, est un projet Google Cloud avec Game Servers activé. Pour améliorer l'isolation et la sécurité, vous gérez généralement un seul titre de jeu à l'aide de plusieurs projets Google Cloud, tels que My Game Production et My Game Testing.
Emplacement
L'emplacement définit le champ d'application d'une ressource. Il a la valeur global
par défaut, qui offre la plus haute disponibilité et une redondance des données dans plusieurs régions Google Cloud. Vous pouvez définir manuellement l'emplacement d'une ressource sur une région Google Cloud spécifique (toutes les régions ne sont pas acceptées). Si vous souhaitez contrôler l'emplacement de stockage des données ou les domaines de basculement, remplacez le paramètre global
par défaut par l'un des emplacements compatibles suivants :
Pays acceptés
asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-southeast1
asia-southeast2
australia-southeast1
europe-central2
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west6
global
northamerica-northeast1
southamerica-east1
us-central1
us-east1
us-east4
us-west1
us-west2
Domaine
Game Servers est conçu pour être compatible avec les clusters Kubernetes s'exécutant sur Google Kubernetes Engine. S'appuyant sur les concepts de régions et zones Google Cloud, Game Servers introduit le concept de métarégion des domaines. Un domaine est un regroupement défini par l'utilisateur de clusters de serveurs de jeu en fonction des exigences de latence du jeu pour les populations de joueurs. Les domaines se voit attribuer un fuseau horaire qui leur permet d'utiliser des configurations de scaling basé sur le moment sur des clusters du domaine. Des domaines existent dans un emplacement spécifique.
Cluster Game Servers
Un cluster de serveurs de jeu est une sous-ressource d'une ressource de domaine. Chaque cluster de serveurs de jeu correspond à un espace de noms sur un cluster Kubernetes exécutant Agones qui est enregistré dans un domaine. Les clusters de serveurs de jeu dans un domaine doivent être considérés comme équivalents du point de vue de l'expérience utilisateur en ce qui concerne des mesures telles que la latence ou les performances de calcul. L'utilisation d'un espace de noms autre que default
nécessite que cet espace de noms soit créé sur Kubernetes et qu'Agones soit configuré pour l'utiliser.
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.
Après la suppression d'un cluster de serveur de jeu, Servers ne supprime aucune ressource du cluster, y compris les parcs Agones et les autoscalers créés par Game Servers.
Déploiement de Game Servers
Un déploiement de serveur de jeu est un enregistrement global d'une version de logiciel de serveur de jeu pouvant être déployée sur tout ou partie des clusters de serveurs de jeu à travers le monde. Un déploiement de serveur de jeu est la ressource parente des ressources de déploiement et de configuration de serveur de jeu.
Figure 2. La version 1.0 de la configuration a été déployée dans le domaine américain, la version 1.1 déployée dans les domaines Europe et Japon.
Configuration de Game Servers
Une configuration de serveur de jeu est une sous-ressource d'une ressource de déploiement de serveur de jeu qui spécifie le nombre de serveurs de jeu, le tampon et la version de serveur de jeu. Vous définissez des règles de scaling dans une configuration de serveur de jeu. Les règles de scaling peuvent être statiques ou basées sur le moment, comme le montrent les exemples suivants :
- Il doit y avoir suffisamment de serveurs pour prendre en charge N allocations par minute pendant les heures de pointe, et M allocations par minute pendant les heures creuses.
- Pour les événements de jeu planifiés, augmentez la capacité réservée de N % pour une plage de dates et d'heures.
Déploiement
Un déploiement est une sous-ressource d'une ressource de déploiement de serveur de jeu qui mappe les configurations de serveur de jeu avec des domaines cibles. Par défaut, un déploiement attribue une configuration de serveur de jeu à tous les domaines. Pour les tests A/B et les tests Canary, vous pouvez remplacer certains domaines pour recevoir une autre configuration de serveur de jeu.
Architecture
Game Servers expose une API de plan de contrôle disponible dans le monde entier, qui vous permet de contrôler les ressources décrivant le déploiement à l'aide d'appels d'API, de Google Cloud Console ou de Google Cloud CLI, y compris:
- Créer et modifier des domaines
- Créer, enregistrer et modifier des clusters de serveurs de jeu dans des domaines
- Créer, déployer et mettre à jour des déploiements de serveur de jeu, des configurations de serveur de jeu et des déploiements
Un compte de service Kubernetes doit être en place pour qu'Agones gère les serveurs de jeu dans l'espace de noms que vous transmettez à Game Servers lors de la création d'un cluster Game Servers. Si vous utilisez un espace de noms autre que l'espace de noms par défaut, vous devez généralement créer ce compte de service dans le cadre de l'installation d'helm.
Un compte de service de projet Google Cloud doit être en place pour que Game Servers puisse se connecter aux clusters Agones. Ce compte de service est créé automatiquement lorsque vous créez pour la première fois une ressource, telle qu'un domaine ou un déploiement.
Chaque déploiement de serveur de jeu décrit des paramètres de serveur de jeu, équivalents à une GameServerSpec
Agones, et spécifie une règle pour cibler les clusters de serveurs de jeu où des parcs de serveurs de jeu exécutant un build spécifique doivent être créés. Vous pouvez également définir des préférences de scaling pour des clusters individuels à l'aide de règles.
Étapes suivantes
- Lisez le guide de démarrage rapide.
- Découvrez comment effectuer des tâches Game Servers spécifiques.