Auf dieser Seite werden zwei unterschiedliche Optionen für die Einführung einer neuen Game Servers-Konfiguration mit einer Canary-Phase beschrieben. In der Canary-Phase stellen Sie die neue Konfiguration für eine kleine Gruppe von Kunden bereit. So können Sie mögliche Probleme erkennen, ohne dass sich dies auf alle Nutzer auswirkt.
Die erste Möglichkeit ist die Verwendung einer Canary-Region. Die Einrichtung dieser Option ist einfacher, aber eine fehlerhafte Einführung wirkt sich auf die gesamte Region aus. Die andere Möglichkeit besteht darin, ein Canary-Deployment zu erstellen. Diese Option ist flexibler, aber auch ein komplexerer Prozess.
Hinweis
Bevor Sie beginnen, sollten Sie sich mit den wichtigsten Konzepten in der Übersicht über Game Servers vertraut machen. Führen Sie außerdem die folgenden Aufgaben aus:
- Prüfen Sie, ob die Game Services API aktiviert ist. Spieledienst-API aktivieren
- Wählen Sie eine Shell mit installierter gcloud CLI aus oder verwenden Sie einen API-Client:
Rufen Sie die Google Cloud Console auf.
Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:
- Erstellen Sie ein Dienstkonto:
- Laden Sie einen privaten Schlüssel als JSON-Datei herunter.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Cloud Shell
So starten Sie Cloud Shell:
In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet.
Mit dieser Shell führen Sie gcloud
-Befehle aus.
Lokale Shell
Installieren Sie die gcloud CLI.
Prüfen Sie, ob Sie das gewünschte Standardprojekt für die Google Cloud CLI festgelegt haben. Andernfalls müssen Sie das Flag --project
später für jeden Befehl explizit angeben:
gcloud config list project
Wenn Sie den folgenden Befehl nicht ausführen können, um ein Standardprojekt festzulegen, ersetzen Sie PROJECT_ID
durch Ihre gewünschte Projekt-ID:
gcloud config set project PROJECT_ID
Führen Sie den folgenden Befehl aus, um Ihre Version der Google Cloud CLI zu verifizieren.
Für Game Servers ist Version 306.0.0
oder höher der gcloud CLI erforderlich.
gcloud version
Aktualisieren Sie Ihre Installation mit dem folgenden Befehl:
gcloud components update
curl / PowerShell
So verwenden Sie die REST API mit curl
oder Windows PowerShell:
Clientbibliothek
Google Cloud Game Servers können mithilfe einer Clientbibliothek programmatisch gesteuert werden. Wie Sie die Bibliothek und die Authentifizierung verwenden, erfahren Sie in der Übersicht zu Clientbibliotheken.
Integrität eines Rollouts prüfen
Achten Sie darauf, den Zustand Ihrer Server an verschiedenen Zeitpunkten während des Rollouts zu prüfen. Mithilfe dieser Daten können Sie entscheiden, ob es sicher ist. Wenn bei den Systemdiagnosen ein Problem auftritt, empfiehlt es sich, den Rollout anzuhalten oder abzubrechen.
Mit den folgenden Empfehlungen können Sie den Status einer Einführung prüfen:
Prüfen Sie, ob der Status einzelner Gameserver-Instanzen
Ready
lautet.Prüfen Sie, ob Agones den gesamten Lebenszyklus eines
GameServer
zuweisen und verwalten kann. Achten Sie darauf, dass sowohl das Haupt- als auch das Canary-DeploymentGameServers
dieselben Labels haben, die mit dem erwartetenGameServerAllocation
-required
-Selektor übereinstimmen, damit Ihre Partnerzuordnung nicht in eine Zuweisung vom Canary-Deployment geändert werden muss. Optional können Sie mit dem Attribut "preferred" in einerGameServerAllocation
-Spezifikation bevorzugt von der Canary-Fleet zuordnen.Achten Sie darauf, dass alle relevanten Spiel- und Systemmesswerte in Ihrer Bereitstellung nicht auf eine Beeinträchtigung der Leistung hinweisen.
Einführung in einer Canary-Region
Mit Game Servers können Sie eine Konfiguration in einem oder mehreren Realmen überschreiben. Achten Sie darauf, dass sich die Cluster in Ihrer Canary-Region in einem separaten Bereich befinden.
In diesem Beispiel ist der Bereich "australia" der Canary-Bereich.
So legen Sie v2
als aktive Konfiguration im Bereich australia
fest:
Kopieren Sie den folgenden Code in eine Datei:
- realmsSelector: realms: - projects/games/locations/australia-southeast1/realms/australia configVersion: v2
Führen Sie den folgenden Befehl aus, um die Änderungen anzuwenden:
gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile --no-dry-run
Dabei ist configOverrideFile der Pfad zur Datei mit der Überschreibungskonfiguration.
Nachdem Sie bestätigt haben, dass die Canary-Region fehlerfrei ist, führen Sie den folgenden Befehl aus, um die neue Version überall bereitzustellen:
gcloud game servers deployments update-rollout stk --default-config "v2" --no-dry-run
Wenn der Vorgang abgeschlossen ist, wird die v2
-Konfiguration überall bereitgestellt.
Bereinigen Sie nun die Überschreibung mit dem folgenden Befehl:
gcloud game servers deployments update-rollout stk --no-dry-run --clear-config-overrides
Einführung in einem Canary-Deployment
Sie können ein separates Deployment verwenden, um die Konfiguration zu testen. Anfangs gibt es kein dediziertes Canary-Deployment.
Erstellen Sie als Erstes das Canary-Deployment:
gcloud game servers deployments create canary
Achten Sie darauf, dass der Selektor, der in GameServerAllocation verwendet wird, Game Servers sowohl aus Ihrer Hauptflotte als auch aus der Canary-Fleet auswählen kann, damit Ihre aktuellen Zuweisungsstrategien nicht geändert werden müssen.
Führen Sie als Nächstes den folgenden Befehl aus, um eine
v1
-Konfiguration zu erstellen, die mit der aktiven Konfiguration im Nicht-Canary-Deployment identisch ist:gcloud game servers configs create v1 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
Dabei ist fleetSpecFile der Pfad der Datei mit der Fleet-Spezifikation. scalingConfigFile ist der Pfad der Datei, die alle Skalierungskonfigurationen enthält.
Wir empfehlen, die Skalierungskonfigurationen so festzulegen, dass die Canary-Fleets wesentlich kleiner sind als die regulären.
Führen Sie den folgenden Befehl aus, um das Canary-Rollout zu aktualisieren, sodass die Konfiguration
v1
überall verfügbar ist:gcloud game servers deployments update-rollout canary --default-config v1 --no-dry-run
Prüfen Sie, ob die Canary-Fleets fehlerfrei sind.
Führen Sie den folgenden Befehl aus, um die Konfiguration
v2
im Canary-Deployment zu erstellen:gcloud game servers configs create v2 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
Dabei ist fleetSpecFile der Pfad der Datei mit der Fleet-Spezifikation. scalingConfigFile ist der Pfad der Datei, die alle Skalierungskonfigurationen enthält. Wir empfehlen, die Canary-Flotten möglichst klein zu konfigurieren.
Führen Sie den folgenden Befehl aus, um die Konfiguration
v2
für das Canary-Deployment einzuführen:gcloud game servers deployments update-rollout canary --default-config v2 --no-dry-run
Prüfen Sie, ob die Canary-Fleets fehlerfrei sind.
Führen Sie den folgenden Befehl aus, um die Konfiguration
v2
für die Hauptbereitstellung einzuführen:gcloud game servers deployments update-rollout stk --default-config v2 --no-dry-run
Prüfen Sie, ob die Fleets fehlerfrei sind. Zu diesem Zeitpunkt wird
v2
überall eingeführt.Bereinigung des Canary-Deployments
Löschen Sie mit folgendem Befehl das Roll-out des Canary-Deployments:
gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
Führen Sie den folgenden Befehl aus, um die Konfiguration „v1“ zu löschen:
gcloud game servers configs delete v1 --deployment=canary
Löschen Sie die Konfiguration „v2“. Führen Sie dazu folgenden Befehl aus:
gcloud game servers configs delete v2 --deployment=canary
Führen Sie den folgenden Befehl aus, um die Canary-Bereitstellung zu entfernen:
gcloud game servers deployments delete canary
Für eine genauere Kontrolle einer Bereitstellung können Sie eine Konfiguration mit Überschreibungen für ausgewählte Bereiche einführen, bevor Sie die Konfiguration als Standard festlegen. Gehen Sie auf die gleiche Weise vor, um Canary gradueller einzuführen.
Sie können die ersten drei Schritte und den letzten Schritt überspringen, wenn Sie ein bestehendes Canary-Deployment beibehalten. Wir empfehlen diese Vorgehensweise für häufige und regelmäßige Rollouts.