menu
arrow_back

Dedizierte Spieleserver in Google Kubernetes Engine ausführen

Dedizierte Spieleserver in Google Kubernetes Engine ausführen

1 Stunde 30 Minuten 9 Guthabenpunkte

GSP133

Google Cloud-Labs zum selbstbestimmten Lernen

Das Packen von Serveranwendungen in Container gewinnt in der Technologiebranche immer mehr an Bedeutung und ist auch für Spieleanbieter interessant. Viele Anbieter möchten Container verwenden, um damit die VM-Auslastung zu verbessern und die Vorteile des isolierten Laufzeitmodells zu nutzen, das in Containern möglich ist. Doch trotz großen Interesses wissen viele Unternehmen nicht, wo sie beginnen sollen.

In diesem Lab wird eine erweiterbare Architektur für sitzungsbasierte dedizierte Spieleserver beschrieben, die im Mehrspielermodus in Echtzeit mit Kubernetes in Google Kubernetes Engine ausgeführt werden. Die VM-Instanzen werden nach Bedarf automatisch von einem Skalierungsmanagerprozess gestartet und beendet. Die Konfiguration der Maschinen als Kubernetes-Knoten wird automatisch von verwalteten Instanzgruppen übernommen. Die Struktur des Onlinespiels in diesem Lab wurde bewusst einfach gehalten und die Stellen, an denen komplexere Strukturen hilfreich sein können, werden entsprechend benannt.

Lernziele

  • Mit Docker ein Container-Image eines beliebten dedizierten Open-Source-Spieleservers (Dedicated Game Server, DGS) erstellen, der unter Linux ausgeführt wird. Bei diesem Container-Image werden ausschließlich die Binärdateien und die erforderlichen Bibliotheken zu einem Linux-Basis-Image hinzugefügt.

  • Assets auf einem separaten nichtflüchtigen Speicherlaufwerk mit Schreibschutz speichern und sie zur Laufzeit im Container bereitstellen.

  • Mithilfe von Kubernetes und den Google Cloud APIs grundlegende Planungsvorgänge einrichten und diese konfigurieren, um Knoten nach Bedarf hoch- und herunterzufahren.

Spieleclient vor Beginn des Labs herunterladen

In diesem Lab erstellen Sie einen Spieleserver. Um diesen zu testen, müssen Sie eine Verbindung zu einem Spieleclient herstellen. Der Spieleclient OpenArena ist für viele Betriebssysteme verfügbar, sofern Sie ihn auf Ihrem lokalen System installieren können. Es ist ratsam, dieses Lab nur dann zu absolvieren, wenn Sie einen Computer verwenden, auf dem die Installation eines Spieleclients möglich ist. Für die Validierung Ihrer Arbeitsschritte ist es nicht zwingend erforderlich, dass Sie eine Verbindung zu einem Spieleclient herstellen. Sie können diesen Schritt auch auslassen. Wir zeigen Ihnen in diesem Lab, wie Sie einen dedizierten Spieleserver erstellen, doch ohne Spieleclient können Sie nicht prüfen, ob er funktioniert.

Installieren Sie den OpenArena-Spieleclient auf Ihrem Computer, um die Verbindung zum Spieleserver am Ende des Labs zu testen:

http://openarena.wikia.com/wiki/Manual/Install

Der Download dauert eine Weile. In der Zwischenzeit können Sie mit der Arbeit an dem Lab beginnen. Schauen Sie in etwa einer halben Stunden noch einmal nach, ob der Download abgeschlossen ist. Dann können Sie den Spieleclient installieren.

Architektur

Im Überblick über die Cloud-Spieleinfrastruktur werden die allgemeinen Komponenten der Architektur vieler Onlinespiele erläutert. In diesem Lab implementieren Sie einen Front-End-Dienst eines Kubernetes-DGS-Clusters und einen Back-End-Dienst eines Skalierungsmanagers. Eine vollständige Spieleinfrastruktur in einer Produktionsumgebung würde darüber hinaus viele weitere Front-End- und Back-End-Dienste umfassen, die in dieser Lösung jedoch nicht berücksichtigt werden.

68b111517057146c.png

Konzeptionelle Einschränkungen

Das vorliegende Beispiel soll sowohl informativ als auch leicht zu erweitern sein. Es gelten in diesem Lab deshalb die folgenden Einschränkungen für das Spiel:

  • Es ist ein spielrundenbasiertes Echtzeitspiel mit einem autoritativen DGS, der den Spielstatus simuliert.
  • Der DGS kommuniziert über das User Datagram Protocol (UDP).
  • Von jedem DGS-Prozess wird ein Spiel ausgeführt.
  • Von allen DGS-Prozessen wird etwa die gleiche Last generiert.
  • Für die Spielrunden gilt eine maximale Zeitdauer.
  • Die DGS-Startzeit ist nicht nennenswert und der DGS-Prozess benötigt keine Aufwärmphase.
  • Auswirkungen auf das Spielererlebnis gilt es zu vermeiden:
  • Nach einer Spitzenlast sollten Spielrunden nicht vorzeitig beendet werden, um die Anzahl der VM-Instanzen zu verringern.
  • Wenn jedoch bei einem DGS-Prozess ein Fehler auftritt und der Prozess nicht fortgesetzt werden kann, geht der Spielstand verloren und es wird erwartet, dass der Spieler eine neue Spielrunde beginnt.
  • Der DGS-Prozess lädt statische Assets vom Laufwerk. Er benötigt jedoch keinen Schreibzugriff auf die Assets.

Diese Einschränkungen gibt es in der Spielebranche tatsächlich, daher stellen sie einen realistischen Anwendungsfall dar.

Einrichtung und Anforderungen

Qwiklabs-Einrichtung

Vor dem Klick auf "Start Lab" (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer, der mit dem Klick auf "Start Lab" (Lab starten) gestartet wird, gibt an, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Qwiklabs-Lab können Sie die Lab-Aktivitäten selbst in einer echten Cloud-Umgebung durchführen, nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf die Google Cloud Platform zugreifen können.

Voraussetzungen

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
  • Genügend Zeit, um das Lab abzuschließen

Hinweis: Auch wenn Sie bereits ein eigenes GCP-Konto oder -Projekt haben, sollten Sie es nicht für das Lab verwenden.

So starten Sie Ihr Lab und melden sich bei der Console an

  1. Klicken Sie auf Start Lab (Lab starten). Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite sehen Sie ein Feld, in dem Ihre temporären Anmeldedaten für dieses Lab angezeigt werden.

    Google Console öffnen

  2. Kopieren Sie den Nutzernamen und klicken Sie dann auf Open Google Console (Google Console öffnen). Das Lab aktiviert Ressourcen und öffnet dann einen weiteren Tab mit der Seite Choose an account (Konto auswählen).

    Tipp: Öffnen Sie die Tabs nebeneinander in separaten Fenstern.

  3. Klicken Sie auf der Seite "Choose an account" (Konto auswählen) auf Use Another Account (Anderes Konto verwenden).

    Konto auswählen

  4. Die Anmeldeseite wird geöffnet. Fügen Sie den Namen ein, den Sie aus dem Bereich "Connection Details" (Verbindungsdetails) kopiert haben. Kopieren Sie dann das Passwort und fügen Sie es ein.

    Wichtig: Sie müssen sich mit dem Nutzernamen und Passwort aus dem Bereich "Connection Details" (Verbindungsdetails) anmelden. Verwenden Sie nicht Ihre Qwiklabs-Anmeldedaten. Auch wenn Sie bereits ein eigenes GCP-Konto haben, sollten Sie es nicht für dieses Lab verwenden (so vermeiden Sie Gebühren).

  5. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Tests an.

Nach wenigen Augenblicken wird die GCP Console in diesem Tab geöffnet.

Google Cloud Shell aktivieren

Google Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Google Cloud Shell können Sie über die Befehlszeile auf Ihre GCP-Ressourcen zugreifen.

  1. Klicken Sie in der GCP Console in der rechten oberen Symbolleiste auf Cloud Shell aktivieren.

    Cloud Shell-Symbol

  2. Klicken Sie auf Continue (Fortsetzen):

    cloudshell_continue

Das Bereitstellen und Herstellen einer Verbindung mit der Umgebung dauert einige Augenblicke. Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Zum Beispiel:

Cloud Shell-Terminal

gcloud ist das Befehlszeilentool für die Google Cloud Platform. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

Sie können den aktiven Kontonamen mit diesem Befehl auflisten:

gcloud auth list

Ausgabe:

Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
	

Beispielausgabe:

Credentialed accounts:
- google1623327_student@qwiklabs.net
	

Sie können die Projekt-ID mit diesem Befehl auflisten:

gcloud config list project
	

Ausgabe:

[core]
project = <project_ID>
	

Beispielausgabe:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Wenn Sie sich in Qwiklabs anmelden, erhalten Sie Zugriff auf den Rest des Labs – und mehr!

  • Sie erhalten vorübergehenden Zugriff auf Google Cloud Console.
  • Mehr als 200 Labs für Einsteiger und Experten.
  • In kurze Sinneinheiten eingeteilt, damit Sie in Ihrem eigenen Tempo lernen können.
Beitreten, um dieses Lab zu starten