kruise-game est un projet open source sous openkruise qui vise à apporter une transformation cloud native pour les charges de travail de jeu, c'est-à-dire les serveurs de jeux.
mais que sont réellement les serveurs de jeux ?
les serveurs de jeux sont essentiellement des machines virtuelles ou des conteneurs qui gèrent les fonctionnalités de base du backend du jeu en ligne multijoueur PVP
ci-dessous, j'ai montré l'architecture de serveur de jeu de base utilisée par les jeux en ligne PvP modernes
Pourquoi avons-nous vraiment besoin de Kruise-Game. les ressources K8 par défaut ne sont-elles pas suffisantes pour les charges de travail de jeu ?
Les jeux PvP modernes deviennent de plus en plus complexes et nécessitent par exemple plusieurs serveurs de jeux pour gérer différents types de services.
votre jeu PvP moderne comme Valorant a besoin de serveurs de jeu pour le lobbying, le matchmaking et celui qui exécute réellement la logique du jeu et gère l'état du jeu. La gestion d'autant de serveurs de jeu est une tâche importante et ne peut pas être effectuée manuellement. Et maintenant ?
Eh bien, nous avons des Kubernetes à sauver. Des K8 avec son fonctionnement et sa gestion automatisés
Les capacités peuvent gérer ce fardeau pour nous, il suffit de déployer l'image de votre serveur de jeu et nous avons terminé, n'est-ce pas ?. Pas vraiment
J'aurais aimé que ce soit aussi simple. Le problème est que vous ne déployez pas votre application Web sans état habituelle ici. Les serveurs de jeux sont différents et leurs exigences sont différentes. Les ressources par défaut de K8 sont bonnes pour les applications sans état, mais les serveurs de jeux ont un cycle de vie plus complexe et ils sont avec état et leurs exigences réseau sont différentes.
Tout d'abord, les serveurs de jeux ont besoin d'une connexion directe sans perte aux clients (connexion UDP), pour cela, nous avons besoin d'adresses IP fixes des pods, l'adresse IP des pods K8 est modifiée lors de la suppression, de la mise à l'échelle.
il y a également un manque de contrôle sur les pods si vous les utilisez pour des serveurs de jeux. Il existe une chose appelée mise à jour continue dans laquelle vous mettez à jour certaines instances de serveurs de jeux pour tester la mise à jour et la déployer progressivement sur d'autres instances pour évitez les temps d'arrêt, le planificateur K8s ne sait pas que vous travaillez avec des serveurs de jeux, il mettra à jour les pods de manière aléatoire, en gros, vous n'avez aucun contrôle sur la stratégie de mise à jour de vos serveurs de jeux. Vous avez donc peu ou pas de flexibilité sur les mises à jour des serveurs de jeux. 🎜>
Pour atténuer ces problèmes, Kruise-game définit deux ressources personnalisées conçues spécifiquement pour les charges de travail des serveurs de jeux gameServer et gameserverSet
gameServer : fait référence à l'abstraction des opérations d'O&M et de gestion sur un serveur de jeu spécifié. Il est principalement utilisé pour les opérations d'exploitation et de gestion telles que le contrôle de la séquence de mise à jour, le contrôle de l'état du serveur de jeu et les modifications réseau du serveur de jeu.
gameServerSet : fait référence à l'abstraction de la gestion du cycle de vie d'un groupe de serveurs de jeux. Il est principalement utilisé pour le contrôle du cycle de vie tel que la gestion des numéros de réplique et le lancement du serveur de jeux.
fonctionnalités fournies par kruise-game pour la gestion des serveurs de jeux :-
L'image ci-dessous montre l'architecture de déploiement du jeu Kruise sur K8s
démarrage avec kruise-game :0
2.
démarrez le minikube
minikube start
utilisez helm pour installer kruise-game
#kruise-game relies on openkruise so you need to install openkruise first # Firstly add openkruise charts repository if you haven't do this. $ helm repo add openkruise https://openkruise.github.io/charts/ # [Optional] $ helm repo update # Install the latest version. $ helm install kruise openkruise/kruise --version 1.6.3 #now instakk kruise-game $ helm install kruise-game openkruise/kruise-game --version 0.8.0
accédez à votre tableau de bord minikube
minikube dashboard
vous devriez utiliser l'espace de noms kruise-game-system, félicitations, vous avez installé kruise-game
pour plus d'informations et de détails sur kruise-game, reportez-vous à la documentation de kruise-game.
Merci d'avoir lu, j'espère que vous avez apprécié cela :).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!