Übersicht über Game Servers

Game Servers ist ein verwalteter Spieledienst, der für Teams von Spieleinfrastrukturen entwickelt wurde, um globale dedizierte Spieleserver-Flets bereitzustellen und zu verwalten. Game Servers ermöglicht die Verwaltung von Spieleserverclustern mit Kubernetes für die Containerorchestrierung und Agones für die Spieleorchestrierung und die Lebenszyklusverwaltung. Sie können von Game Servers jederzeit eine Verbindung zur Verwaltung von Clustern herstellen und diese aufheben, ohne dass sich dies auf die Spielsitzungen auswirkt. Nachdem Sie die Verbindung zu einem Cluster getrennt haben, können Sie die Open-Source-Agones-Installation 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 Spielsitzungen werden niemals unterbrochen, weil ein in Spielen verwendeter Spieleserver niemals angehalten wird.

Game Servers-Ressourcen

In diesem Abschnitt werden die Hauptressourcen beschrieben, mit denen Sie zur Verwaltung von Game Servers interagieren. Die folgende Abbildung zeigt, wie diese Ressourcen zur Bereitstellung eines Spielprojekts verwendet werden.

Beispiel für die Bereitstellung eines Spielprojekts
Abbildung 1. Bereitstellung von Beispiel-Spieleprojekten auf Game Servers

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 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 (nicht alle Regionen werden unterstützt). Wenn Sie steuern möchten, wo Daten gespeichert werden oder welche Ihre Failover-Domains sind, überschreiben Sie die Standardeinstellung global durch einen der folgenden unterstützten Standorte:

Unterstützte Standorte

  • 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

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. Eine Realm ist eine benutzerdefinierte Gruppierung von Gameserver-Clustern, die auf den Latenzanforderungen des Spielers für die Populationen von Spielern basieren. Realms ist eine Zeitzone zugewiesen, mit der zeitbasierte Skalierungskonfigurationen auf Clustern im Bereich genutzt werden können. Bereiche befinden sich innerhalb eines Standorts.

Gameserver-Cluster

Ein Gameserver-Cluster ist eine Unterressource einer Realm-Ressource. Jeder Spieleservercluster entspricht einem Namespace auf einem Kubernetes-Cluster, auf dem Agones ausgeführt wird, der für einen Bereich registriert ist. Gameserver-Cluster in einem Realbereich sollten aus Sicht der Nutzerfreundlichkeit hinsichtlich der Messung der Latenz oder der Rechenleistung betrachtet werden. Wenn Sie einen anderen Namespace als default verwenden, müssen Sie den Namespace in Kubernetes erstellen und Agones ist dafür konfiguriert.

Nachdem Sie einen Spieleservercluster erstellt haben, erstellt Game Server nach Bedarf Agones-Flotten und Autoscaling. Game Servers ändert die manuell erstellten Agones-Flets nicht.

Nach dem Löschen eines Gameserver-Clusters löschen keine Ressourcen im Cluster, einschließlich der von Game Servers erstellten Agones-Gerätepools und Autoscalings.

Gameserver-Deployment

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

Verschiedene Konfigurationen für verschiedene Bereiche bereitstellen
Abbildung 2. Konfiguration der Version 1.0 wurde für den US-amerikanischen Real, Version 1.1 für die Real- und europäischen Real eingeführt.

Gameserver-Konfiguration

Eine Spieleserverkonfiguration ist eine Unterressource einer Spieleserver-Bereitstellungsressource, die die Anzahl der Spieleserver, den Zwischenspeicher und die Version des Spieleservers angibt. Sie definieren Skalierungsrichtlinien in einer Spieleserverkonfiguration. Skalierungsrichtlinien können statisch oder zeitbasierte sein, wie in den folgenden Beispielen veranschaulicht:

  • Zu Spitzenzeiten sollten genügend Server vorhanden sein, um N Zuweisungen pro Minute zu unterstützen, während außerhalb der Spitzenzeiten M, also M-Zuordnungen pro Minute.
  • Erhöhen Sie bei geplanten Spielereignissen die reservierte Kapazität für ein Datum und einen Zeitraum um N %.

Einführung

Ein Rollout ist eine Unterressource einer Ressource für das Spieleserver-Deployment, die Spieleserverkonfigurationen auf Ziele ausschließt. Standardmäßig weist ein Rollout allen Realservern eine Spieleserverkonfiguration zu. Bei A/B-Tests und Canary-Tests können Sie bestimmte Bereiche überschreiben, um eine alternative Spieleserverkonfiguration zu erhalten.

Architektur

Game Servers stellt eine global verfügbare Steuerungsebene zur API bereit. Über diese können Sie Ressourcen steuern, die die Bereitstellung mithilfe von API-Aufrufen, der Cloud Console oder dem gcloud-Befehlszeilentool beschreiben. Dazu gehören folgende Vorgänge:

  • Bereiche erstellen und ändern.
  • Erstellen, Registrieren und Ändern von Gameserver-Clustern in Bereichen
  • Spieleserverbereitstellungen, Spieleserverkonfigurationen und Rollouts erstellen, bereitstellen und aktualisieren.

Ein Kubernetes-Dienstkonto muss vorhanden sein, damit Agones Spieleserver in dem Namespace verwalten können, die Sie beim Erstellen eines Game Servers-Clusters an Game Servers übergeben. Wenn Sie einen anderen Namespace als den Standard-Namespace verwenden, müssen Sie dieses Dienstkonto in der Regel mit der helm-Installation erstellen.

Ein Google Cloud-Projektdienstkonto muss vorhanden sein, damit Gameserver eine Verbindung zu den Agones-Clustern herstellen können. Dieses Dienstkonto wird automatisch erstellt, wenn Sie eine Ressource wie einen Bereich oder ein Deployment zum ersten Mal erstellen.

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

Nächste Schritte