Kurzanleitung

In dieser Kurzanleitung erfahren Sie, wie Sie mit Gameserver-Bereichen, -Clustern, -Deployments, -Konfigurationen und -Rollouts in Game Servers mit dem gcloud-Befehlszeilentool arbeiten.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Prüfen Sie, ob die Game Services API aktiviert ist.
  5. Game Services API aktivieren

Shell auswählen

Sie können diese Kurzanleitung entweder in Cloud Shell oder in Ihrer lokalen Shell ausführen.

Cloud Shell ist eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloud gehostet werden. Das gcloud-Befehlszeilentool ist in Cloud Shell vorinstalliert. Das gcloud-Tool ist die primäre Befehlszeile für Game Servers.

Cloud Shell

So starten Sie Cloud Shell:

  1. Öffnen Sie die Google Cloud Console.

    Google Cloud Console

  2. Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:

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 zur Installation von gcloud das Cloud SDK. Darin ist das gcloud-Befehlszeilentool enthalten.

Prüfen Sie, ob Sie das gewünschte Standardprojekt für das gcloud-Befehlszeilentool festgelegt haben. Andernfalls müssen Sie das Flag --project für jeden Befehl später 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 des Google Cloud SDK zu prüfen. Für Game Servers ist Version 306.0.0 oder höher des SDK erforderlich.

gcloud version

Aktualisieren Sie Ihre Installation mit dem folgenden Befehl:

gcloud components update

Wenn Sie eine lokale Shell auswählen, müssen Sie möglicherweise kubectl installieren:

gcloud components install kubectl

Google Kubernetes Engine-Cluster erstellen

So erstellen Sie einen Google Kubernetes Engine-Cluster:

  1. Führen Sie den folgenden Befehl aus, um einen kostenoptimierten Cluster mit einem Knoten in der Zone us-central1-a zu erstellen:

    gcloud container clusters create gcgs-quickstart \
    --cluster-version=1.15 \
    --tags=game-server \
    --scopes=gke-default \
    --num-nodes=1 \
    --no-enable-autoupgrade \
    --machine-type=e2-standard-2 \
    --zone=us-central1-a
    
  2. Führen Sie den folgenden Befehl aus, um die Anmeldedaten für den GKE-Cluster abzurufen, den Sie im vorherigen Schritt erstellt haben:

    gcloud container clusters get-credentials gcgs-quickstart --zone=us-central1-a
    

Agones in GKE installieren

In diesem Abschnitt installieren Sie die Open-Source-Plattform Agones für Gaming-Infrastrukturen. So installieren Sie Agones:

  1. Führen Sie den folgenden Befehl aus, um den Namespace agones-system zu erstellen:

    kubectl create namespace agones-system
    
  2. Führen Sie den folgenden Befehl aus, um Agones zu installieren:

    kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.7.0/install/yaml/install.yaml
    
  3. Sie können prüfen, ob das Agones-System ausgeführt wird, indem Sie den Status der Kubernetes-Pods prüfen:

    kubectl get --namespace agones-system pods
    

    Alle Pods müssen den Status Running haben:

    NAME                                 READY   STATUS    RESTARTS   AGE
    agones-allocator-6694dcc89-7r75d     1/1     Running   0          28s
    agones-allocator-6694dcc89-m7ghq     1/1     Running   0          28s
    agones-allocator-6694dcc89-qp6cm     1/1     Running   0          28s
    agones-controller-56c98db844-llzzc   1/1     Running   0          22s
    agones-ping-d9d74c5c6-8kmt6          1/1     Running   0          24s
    agones-ping-d9d74c5c6-xwn4h          1/1     Running   0          24s
    

Game Servers-Ressourcen erstellen

So erstellen Sie Game Servers-Ressourcen:

  1. Erstellen Sie einen Bereich am selben Speicherort wie der GKE-Cluster:

    gcloud game servers realms create realm-quickstart --time-zone EST --location us-central1
    
  2. Registrieren Sie den Agones-GKE-Cluster bei Game Servers und hängen Sie ihn an den Bereich an, den Sie im vorherigen Schritt erstellt haben:

    gcloud game servers clusters create cluster-quickstart \
    --realm=realm-quickstart \
    --gke-cluster locations/us-central1-a/clusters/gcgs-quickstart \
    --namespace=default \
    --location us-central1 \
    --no-dry-run
    
  3. Erstellen Sie ein Gameserver-Deployment, mit dem Sie Ihre Serverkonfigurationen speichern, und führen Sie diese dann für Ihre Gameserver-Cluster ein:

    gcloud game servers deployments create deployment-quickstart
    

    Sie haben jetzt eine Gameserver-Bereitstellung erstellt und können damit eine Gameserver-Konfiguration mithilfe des gcloud-Tools hinzufügen.

  4. Kopieren Sie das folgende Beispielmanifest für eine Agones Fleet-Spezifikation in eine neue Datei mit dem Namen fleet_configs.yaml im aktuellen Verzeichnis:

    - name: fleet-spec-1
      fleetSpec:
        replicas: 2
        template:
          metadata:
            labels:
              foo: bar
          spec:
            ports:
            - name: default
              portPolicy: Dynamic
              containerPort: 7654
            template:
              spec:
                containers:
                - name: simple-udp
                  image: gcr.io/agones-images/udp-server:0.17
    
  5. Führen Sie den folgenden Befehl aus, um die Gameserver-Konfiguration zu erstellen:

    gcloud game servers configs create config-1 --deployment deployment-quickstart --fleet-configs-file fleet_configs.yaml
    
  6. Führen Sie den folgenden Befehl aus, um das Rollout zu aktualisieren:

    gcloud game servers deployments update-rollout deployment-quickstart --default-config config-1 --no-dry-run
    
  7. Führen Sie den folgenden Befehl aus, um das Rollout einer Fleet unter dem Standard-Namespace zu prüfen:

    kubectl get fleet
    

    Im Folgenden wird die erwartete Ausgabe dargestellt:

    NAME                                     SCHEDULING   DESIRED   CURRENT   ALLOCATED   READY   AGE
    fleet-deployment-quickstart-config-1   Packed       2         2         0           2       4s
    

    Die Ausgabe bestätigt, dass Sie eine Fleet mit zwei einfachen UDP-Serverreplikaten in Ihrem Cluster bereitgestellt haben, die Verbindungen akzeptieren können.

Konnektivität zum UDP-Server testen

So testen Sie die Konnektivität zum UDP-Server:

  1. Erstellen Sie eine Firewallregel, um die UDP-Ports zu öffnen, die für die Verbindung mit dem Cluster erforderlich sind:

    gcloud compute firewall-rules create gcgs-quickstart-firewall \
    --allow udp:7000-8000 \
    --target-tags game-server \
    --description "Firewall to allow game server udp traffic"
    
  2. Rufen Sie als Nächstes die IP-Adresse und die Portnummer für einen einzelnen Gameserver ab:

    kubectl get gameserver
    

    Die Ausgabe des Befehls sieht in etwa so aus:

    NAME                                                 STATE   ADDRESS          PORT   NODE                                             AGE
    fleet-deployment-quickstart-config-1-nndvr-5gvch   Ready   IP_address   port_number   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    fleet-deployment-quickstart-config-1-nndvr-vqwpl   Ready   IP_address   port_number   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    
  3. Zum Testen der Konnektivität führen Sie den Befehl Netcat aus. Führen Sie den folgenden Befehl aus, um Netcat unter Linux zu installieren:

    sudo apt install netcat
    
  4. Führen Sie den folgenden Befehl aus, um den Test zu starten:

    nc -u IP_address port_number
    
  5. Geben Sie als Nächstes Hello ein. Die Ausgabe des Befehls sieht in etwa so aus:

    Hello
    > ACK: Hello
    

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

Wenn Sie die in dieser Kurzanleitung erstellten Ressourcen nicht behalten möchten, können Sie das Projekt löschen:

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite "Ressourcen verwalten"

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Wenn Sie das Projekt beibehalten möchten, führen Sie die folgenden Schritte aus, um die in dieser Kurzanleitung erstellten Ressourcen manuell zu löschen:

  1. Führen Sie den folgenden Befehl aus, um die Firewallregel zu löschen:

    gcloud compute firewall-rules delete gcgs-quickstart-firewall
    
  2. Führen Sie den folgenden Befehl aus, um das Standard-Rollout zu löschen:

    gcloud game servers deployments update-rollout deployment-quickstart --clear-default-config --no-dry-run
    
  3. Führen Sie den folgenden Befehl aus, um die Gameserver-Konfiguration zu löschen:

    gcloud game servers configs delete config-1 --deployment deployment-quickstart
    
  4. Führen Sie den folgenden Befehl aus, um die Gameserver-Bereitstellung zu löschen:

    gcloud game servers deployments delete deployment-quickstart
    
  5. Führen Sie den folgenden Befehl aus, um den Gameserver-Cluster zu löschen:

    gcloud game servers clusters delete cluster-quickstart --realm=realm-quickstart --no-dry-run --location=global
    
  6. Führen Sie den folgenden Befehl aus, um den Bereich zu löschen:

    gcloud game servers realms delete realm-quickstart
    
  7. Führen Sie den folgenden Befehl aus, um die Game Services API zu deaktivieren:

    gcloud services disable gameservices.googleapis.com
    
  8. Führen Sie den folgenden Befehl aus, um den GKE-Cluster zu löschen:

    gcloud container clusters delete gcgs-quickstart --zone=us-central1-a
    

Weitere Informationen

Eine technische Einführung in Game Servers-Konzepte finden Sie unter Übersicht über Game Servers.

Informationen zu bestimmten Game Servers-Aufgaben finden Sie in den Anleitungen.

Sehen Sie sich das Terraform-Deployment-Beispiel an.