Übersicht über Game Servers

Game Servers ist ein verwalteter Spieldienst, der für Spielinfrastrukturen entwickelt wurde, um dedizierte globale Gameserver einfach bereitzustellen und zu verwalten. Game Servers ermöglicht die Verwaltung von Gameserver-Clustern mit Kubernetes für die Containerorchestrierung und Agones für die Flottenorchestrierung und die Lebenszyklusverwaltung von Gameservern. Sie können Cluster jederzeit der Verwaltung durch Game Servers hinzufügen oder diese aufheben, ohne dass sich dies auf bestehende Spielesitzungen auswirkt. Nachdem Sie die Verwaltung des Clusters aufgehoben haben, können Sie die Open-Source-Installation von Agones weiterhin ausführen.

Sie steuern Gameserver-Cluster mithilfe von globalen Gameserver-Konfigurationen, die Regeln für den Standort und die Anzahl der einzurichtenden Server definieren und festlegen, welche Gameserver-Binärdatei bereitgestellt werden soll. Game Servers erstellt automatisch Agones-Fleets auf Basis zentral verwalteter Rollouts, um sicherzustellen, dass sie automatisch und sicher für alle verwalteten Cluster bereitgestellt werden. Insbesondere laufende Spielesitzungen werden niemals unterbrochen, da ein laufender Gameserver niemals abrupt angehalten wird.

Game Servers-Ressourcen

In diesem Abschnitt werden die Hauptressourcen beschrieben, mit denen Sie interagieren, um Game Servers zu verwalten.

Game Servers-Projekt

Eine einzelne Umgebung, wie die Produktions- oder Testumgebung, und ein Google Cloud-Projekt, für das Game Servers aktiviert ist. Zur Verbesserung der Isolation und Sicherheit verwalten Sie normalerweise ein einziges Spiel mit mehreren Google Cloud-Projekten, z. B. My Game Production und My Game Testing.

Ort

Der Standort definiert den Bereich einer Ressource und hat standardmäßig den Wert global, der die höchste Verfügbarkeit bietet und wo Daten in mehreren Google Cloud-Regionen redundant sind. Sie können den Standort für eine Ressource manuell auf eine bestimmte Google Cloud-Region festlegen. Wenn Sie steuern möchten, wo Daten gespeichert werden oder was Ihre Failover-Domains sind, überschreiben Sie die Standardeinstellung global.

Bereich

Game Servers ist für die Unterstützung von Kubernetes-Clustern ausgelegt, die in Google Kubernetes Engine ausgeführt werden. Game Servers führt das Konzept der Metaregion für Bereiche ein und baut auf dem Konzept der Regionen und Zonen von Google Cloud auf. Ein Bereich ist eine benutzerdefinierte Gruppierung von Gameserver-Clustern, die auf den Latenzanforderungen des Spiels für die Anzahl an Spielern basiert. Bereichen ist eine Zeitzone zugewiesen, die es ermöglicht, zeitbasierte Skalierungskonfigurationen auf Clustern innerhalb des Bereichs zu verwenden. Bereiche befinden sich innerhalb eines Standorts.

Gameserver-Cluster

Ein Gameserver-Cluster ist eine Unterressource einer Bereichsressource. Jeder Gameserver-Cluster entspricht einem Namespace in einem Kubernetes-Cluster, auf dem Agones ausgeführt werden, der für einen Bereich registriert ist. Gameserver-Cluster in einem Bereich sollten aus Sicht der Nutzerfreundlichkeit hinsichtlich der Latenzmessung oder der Rechenleistung betrachtet werden. Wenn Sie einen anderen Namespace als default verwenden, muss der Namespace in Kubernetes erstellt und von Agones für die Verwendung konfiguriert werden.

Nachdem Sie einen Gameserver-Cluster erstellt haben, erstellt Game Servers nach Bedarf Agones Fleets und Autoscaler. Game Servers ändert die manuell erstellten Agones Fleets nicht.

Nachdem Sie einen Gameserver-Cluster gelöscht haben, werden von Game Servers keine Ressourcen im Cluster gelöscht, einschließlich Agones Fleets und Autoscaler, die von Game Servers erstellt wurden.

Gameserver-Deployment

Eine Gameserver-Bereitstellung ist eine globale Gameserver-Softwareversion, die auf einem oder allen Gameserver-Clustern weltweit bereitgestellt werden kann. Eine Gameserver-Bereitstellung ist die übergeordnete Ressource der Gameserver-Konfiguration und der Rollout-Ressourcen.

Gameserver-Konfiguration

Eine Gameserver-Konfiguration ist eine untergeordnete Ressource einer Gameserver-Bereitstellungsressource. Sie gibt die Anzahl der Gameserver, den Zwischenspeicher und die Gameserver-Version an. Skalierungsrichtlinien werden in einer Gameserver-Konfiguration definiert. Skalierungsrichtlinien können statisch oder zeitlich begrenzt sein, wie in den folgenden Beispielen veranschaulicht:

  • Zu Spitzenzeiten sollten genügend Server vorhanden sein, um N Zuweisungen pro Minute zu verarbeiten und außerhalb der Spitzenzeiten für M Zuweisungen.
  • Für geplante Spielereignisse erhöhen Sie die reservierte Kapazität für ein bestimmtes Datum und einen Zeitraum um N %.

Einführung

Ein Rollout ist eine untergeordnete Ressource einer Gameserver-Bereitstellungsressource, die Gameserver-Konfigurationen Zielbereichen zuweist. Standardmäßig weist ein Rollout allen Bereichen eine Gameserver-Konfiguration zu. Für A/B-Tests und Canary-Tests können Sie bestimmte Bereiche überschreiben, um eine alternative Gameserver-Konfiguration zu erhalten.

Architektur

Game Servers stellt eine global verfügbare Steuerungsebenen-API bereit, mit der Sie Ressourcen steuern können, die das Deployment mit API-Aufrufen oder dem gcloud-Befehlszeilentool beschreiben. Dazu gehören:

  • Bereiche erstellen und ändern
  • Gameserver-Cluster in Bereichen erstellen, registrieren und ändern
  • Gameserver-Bereitstellungen, -Konfigurationen und -Rollouts erstellen, bereitstellen und aktualisieren

Damit Game Servers Ressourcen verwalten kann, müssen Sie ein Kubernetes-Dienstkonto mit auf die Agones-Cluster beschränktem Zugriff erstellen. Game Servers verwendet dieses Konto, um Konfigurationsänderungen global an Kubernetes-Cluster zu übertragen.

Jede Gameserver-Bereitstellung beschreibt die Gameserver-Parameter, die einer Agones-GameServerSpec entsprechen, und gibt eine Richtlinie für die Ausrichtung auf Gameserver-Cluster an, auf denen die Gameserver für verschiedene Builds erstellt werden sollen. Sie können auch individuelle Skalierungseinstellungen für Cluster mithilfe von Richtlinien festlegen.

Weitere Informationen