Heim > Backend-Entwicklung > Golang > Cloud-Native-Gaming mit kruiseGame

Cloud-Native-Gaming mit kruiseGame

王林
Freigeben: 2024-09-03 14:17:29
Original
490 Leute haben es durchsucht

Was ist Kruise-Game?

Kruise-Game ist ein Open-Source-Projekt unter Openkruise, das darauf abzielt, eine Cloud-native Transformation für Gaming-Workloads, auch bekannt als Spieleserver, zu ermöglichen.

aber was sind Gameserver eigentlich?
Spieleserver sind im Grunde virtuelle Maschinen oder Container, die die Kernfunktionen im Backend von PVP-Multiplayer-Onlinespielen verwalten

unten habe ich die grundlegende Gameserver-Architektur gezeigt, die von modernen PvP-Online-Spielen verwendet wird

Cloud Native gaming with kruiseGame

Warum brauchen wir wirklich Kruise-Game? Reichen die standardmäßigen k8s-Ressourcen nicht für Gaming-Workloads aus?

Moderne PvP-Spiele werden immer komplexer und erfordern beispielsweise mehrere Spielserver, um verschiedene Arten von Diensten zu verwalten.
Ihr modernes PvP-Spiel wie Valorant benötigt Spielserver für Lobbying, Matchmaking und einen, der die eigentliche Spiellogik ausführt und den Spielstatus verwaltet. Der Umgang mit so vielen Spielservern ist eine große Aufgabe und kann nicht manuell erledigt werden. Was nun?

Nun, wir müssen Kubernetes retten. K8s mit seinem automatisierten Betrieb und Management
Diese Funktionen können diese Belastung für uns bewältigen. Stellen Sie einfach Ihr Gameserver-Image bereit und wir sind fertig, oder? Nicht wirklich

Ich wünschte, es wäre so einfach. Das Problem besteht darin, dass Sie hier nicht Ihre übliche zustandslose Webanwendung bereitstellen. Spielserver sind unterschiedlich und ihre Anforderungen sind unterschiedlich. Die Standardressourcen von k8 sind gut für zustandslose Anwendungen, aber Spielserver haben einen komplexeren Lebenszyklus und sie sind zustandsbehaftet und auch ihre Netzwerkanforderungen sind unterschiedlich.

  • Zuallererst benötigen Spielserver eine direkte, verlustfreie Verbindung zu Clients (UDP-Verbindung), dafür benötigen wir feste IP-Adressen von Pods, k8s-Pods-IP wird beim Löschen und Skalieren geändert.

  • Außerdem mangelt es Ihnen an Kontrolle über Pods, wenn Sie diese für Spielserver verwenden. Es gibt ein sogenanntes Rolling Update, bei dem Sie einige Instanzen von Spielservern aktualisieren, um das Update zu testen und es nach und nach auf andere Instanzen auszurollen Verhindern Sie Ausfallzeiten. Der K8-Planer weiß nicht, dass Sie mit Spielservern arbeiten. Er aktualisiert die Pods nach dem Zufallsprinzip. Sie haben im Grunde keine Kontrolle über die Update-Strategie Ihrer Spielserver. Sie haben also wenig bis gar keine Flexibilität bei Spielserver-Updates.

Um diese Probleme zu mildern, definiert kruise-game zwei benutzerdefinierte Ressourcen, die speziell für Spieleserver-Workloads entwickelt wurden: gameServer und gameserverSet

  • gameServer: Bezieht sich auf die Abstraktion von Betriebs- und Verwaltungsvorgängen auf einem bestimmten Spieleserver. Es wird hauptsächlich für Betriebs- und Wartungsvorgänge sowie für Verwaltungsvorgänge verwendet, z. B. die Aktualisierungssequenzsteuerung, die Zustandssteuerung des Spieleservers und Netzwerkänderungen des Spieleservers.

  • gameServerSet:Bezieht sich auf die Abstraktion des Lebenszyklusmanagements für eine Gruppe von Spieleservern. Es wird hauptsächlich zur Lebenszyklussteuerung wie der Verwaltung von Replikatnummern und dem Start von Spieleservern verwendet.

Funktionen, die kruise-game für die Verwaltung von Spieleservern bereitstellt:-

  • Hot-Update basierend auf Bildern und Hot-Reload von Konfigurationen

  • Aktualisierung, Löschung und Isolierung bestimmter Spieleserver

  • Mehrere integrierte Netzwerkmodelle (feste IP-Adresse und Port, verlustfreie Direktverbindung und globale Beschleunigung)

  • Automatische Skalierung

  • Automatisierte O&M (Servicequalität)

  • Unabhängig von Cloud-Dienstanbietern

  • Komplexe Spieleserver-Orchestrierung

Das folgende Bild zeigt die Kruise-Game-Bereitstellungsarchitektur auf k8s

Cloud Native gaming with kruiseGame

Erste Schritte mit kruise-game :0

  1. einen K8S-Cluster und einen Helm bekommen

Sie benötigen einen K8S-Cluster für das Kruise-Spiel. Der einfachste Weg, einen K8S-Cluster zu erhalten, besteht darin, Minikube auf Ihrem Computer zu installieren. Stellen Sie außerdem sicher, dass Helm auf Ihrem Computer installiert ist.

2.Minikube starten

minikube start 
Nach dem Login kopieren

3.Verwenden Sie Helm, um Kruise-Game zu installieren

#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
Nach dem Login kopieren

4.Gehen Sie zu Ihrem Minikube-Dashboard

minikube dashboard 
Nach dem Login kopieren

5.Sie sollten den Namespace kruise-game-system verwenden. Herzlichen Glückwunsch, Sie haben kruise-game installiert

Cloud Native gaming with kruiseGame

Weitere Informationen und Details zu Kruise-Game finden Sie in der Dokumentation zu Kruise-Game.

Vielen Dank fürs Lesen, ich hoffe, es hat Ihnen gefallen :).

Das obige ist der detaillierte Inhalt vonCloud-Native-Gaming mit kruiseGame. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage