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. Die folgende Abbildung zeigt, wie diese Ressourcen verwendet werden, um ein Spielprojekt bereitzustellen.
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.
Standort
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 was Ihre Failover-Domains sind, überschreiben Sie die Standardeinstellung global
mit einem 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. 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 Bereichs- Ressource. Jeder Gameserver-Cluster entspricht einem Namespace in einem Kubernetes-Cluster, auf dem Agones ausgeführt werden, der einem 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, 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.
Abbildung 2. Die Konfigurationsversion 1.0 wurde für den US-Bereich eingeführt, die Version 1.1 für die Bereiche Europa und Japan.
Gameserver-Konfiguration
Eine Game Server-Konfiguration ist eine untergeordnete Ressource einer Game Server-Bereitstellungsressource. Sie gibt die Anzahl der Spieleserver, den Puffer und die Version des Game Servers an. Skalierungsrichtlinien werden in einer Game Server-Konfiguration festgelegt. Skalierungsrichtlinien können statisch oder zeitbasiert 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 %.
Roll-out
Ein Rollout ist eine untergeordnete Ressource einer , die Zielbereichen zuweist. 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 API der Steuerungsebene bereit, über die Sie Ressourcen steuern können, die die Bereitstellung mithilfe von API-Aufrufen, der Google Cloud Console oder der Google Cloud CLI 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
Ein Kubernetes-Dienstkonto muss vorhanden sein, damit Agones Spieleserver in dem Namespace verwalten kann, den Sie an Game Servers übergeben, wenn Sie einen Game Servers-Cluster erstellen. Wenn Sie einen anderen Namespace als den Standard-Namespace verwenden, erstellen Sie dieses Dienstkonto in der Regel als Teil der Helm-Installation.
Ein Google Cloud-Projektdienstkonto muss vorhanden sein, damit Game Servers eine Verbindung zu den Agones-Clustern herstellen kann. Dieses Dienstkonto wird automatisch erstellt, wenn Sie eine Ressource erstellen, z. B. einen Bereich oder eine Bereitstellung.
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
- Kurzanleitung ansehen
- Informationen zum Durchführen bestimmter Game Servers-Aufgaben.