クイックスタート

このクイックスタートでは、Game Servers で gcloud コマンドライン ツールを使用して、Game Servers のレルム、クラスタ、デプロイメント、構成ファイル、ロールアウトを行う方法について説明します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Game Services API が有効になっていることを確認します。
  5. Game Services API を有効にする

シェルを選択する

このクイックスタートを完了するには、Cloud Shell またはローカルシェルを使用します。

Google Cloud Shell は、Google Cloud でホストされているリソースを管理するためのシェル環境です。Cloud Shell には、gcloud コマンドライン ツールがプリインストールされています。gcloud ツールは、Game Servers のプライマリ コマンドライン インターフェースを提供します。

Cloud Shell

Cloud Shell を起動するには、次の手順に従います。

  1. Google Cloud Console に移動します。

    Google Cloud Console

  2. コンソールの右上隅にある [Cloud Shell をアクティブにする] ボタン をクリックします。

コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud コマンドを実行します。

ローカルシェル

gcloud をインストールするには、Cloud SDK をインストールします。これには、gcloud コマンドライン ツールが含まれています。

gcloud コマンドライン ツールに必要なデフォルトのプロジェクトが設定されていることを確認します(設定されていない場合、後でコマンドごとに --project フラグを明示的に指定する必要があります)。

gcloud config list project

デフォルト プロジェクトを設定していない場合は、次のコマンドを実行して、デフォルト プロジェクトを設定します。project-id は、設定するプロジェクト ID に置き換えてください。

gcloud config set project project-id

次のコマンドを実行して、Google Cloud SDK のバージョンを確認します。 Game Servers では、バージョン 306.0.0 以降の SDK が必要です。

gcloud version

インストールを更新するには、次のコマンドを実行します。

gcloud components update

ローカルシェルを選択した場合、場合によっては、次に kubectl をインストールする必要があります。

gcloud components install kubectl

Google Kubernetes Engine クラスタの作成

Google Kubernetes Engine クラスタを作成するには:

  1. 次のコマンドを実行して、us-central1-a ゾーンにノードが 1 つあるコスト最適化クラスタを作成します。

    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. 次のコマンドを実行して、前の手順で作成した GKE クラスタの認証情報を取得します。

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

GKE への Agones のインストール

このセクションでは、オープンソースの Agones ゲーム インフラストラクチャ プラットフォームをインストールします。Agones をインストールするには:

  1. 次のコマンドを実行して agones-system Namespace を作成します。

    kubectl create namespace agones-system
    
  2. 次のコマンドを実行して Agones をインストールします。

    kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.7.0/install/yaml/install.yaml
    
  3. Kubernetes Pod のステータスを確認することで、Agones システムが稼働していることを確認できます。

    kubectl get --namespace agones-system pods
    

    すべての Pod は Running 状態になっています。

    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 リソースの作成

Game Servers リソースを作成するには:

  1. GKE クラスタと同じロケーションにレルムを作成します。

    gcloud game servers realms create realm-quickstart --time-zone EST --location us-central1
    
  2. Agones GKE クラスタを Game Servers に登録し、前の手順で作成したレルムに接続します。

    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. Game Servers のデプロイメントを作成して、そのデプロイメントを使用し、すべて同じサーバー構成を保存します。次に、それらを Game Servers クラスタにロールアウトします。

    gcloud game servers deployments create deployment-quickstart
    

    Game Servers のデプロイメントを作成していますので、gcloud ツールを使用して Game Servers 構成ファイルを追加できます。

  4. 次の Agones フリート仕様マニフェストの例を、現在のディレクトリ内の fleet_configs.yaml という名前の新しいファイルにコピーします。

    - 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. Game Servers 構成ファイルを作成するには、次のコマンドを実行します。

    gcloud game servers configs create config-1 --deployment deployment-quickstart --fleet-configs-file fleet_configs.yaml
    
  6. ロールアウトを更新するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deployment-quickstart --default-config config-1 --no-dry-run
    
  7. デフォルトの Namespace にある 1 つのフリートのロールアウトを検証するには、次のコマンドを実行します。

    kubectl get fleet
    

    想定される出力は次のとおりです。

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

    この出力により、クラスタに接続を受け入れる準備が整っている 2 つのシンプルな UDP サーバー レプリカを含むフリートがデプロイされたことが確認できます。

UDP サーバーへの接続のテスト

UDP サーバーへの接続をテストするには:

  1. クラスタへの接続に必要な UDP ポートを開くファイアウォール ルールを作成します。

    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. 次に、個々の Game Servers の IP アドレスとポート番号を取得します。

    kubectl get gameserver
    

    このコマンドは、次のような出力を返します。

    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. 接続をテストするには、Netcat コマンドを実行します。Netcat を Linux にインストールするには、次のコマンドを実行します。

    sudo apt install netcat
    
  4. テストを開始するには、次のコマンドを実行します。

    nc -u IP_address port_number
    
  5. 次に「Hello」と入力すると、コマンドは次のような出力を返します。

    Hello
    > ACK: Hello
    

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

このクイックスタートで作成したリソースを保持しない場合は、プロジェクトを削除できます。

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

また、プロジェクトを保持する場合は、次の手順を実行して、このクイックスタートで作成したリソースを手動で削除します。

  1. ファイアウォール ルールを削除するには、次のコマンドを実行します。

    gcloud compute firewall-rules delete gcgs-quickstart-firewall
    
  2. デフォルトのロールアウトを削除するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deployment-quickstart --clear-default-config --no-dry-run
    
  3. Game Servers 構成ファイルを削除するには、次のコマンドを実行します。

    gcloud game servers configs delete config-1 --deployment deployment-quickstart
    
  4. Game Servers デプロイを削除するには、次のコマンドを実行します。

    gcloud game servers deployments delete deployment-quickstart
    
  5. Game Servers クラスタを削除するには、次のコマンドを実行します。

    gcloud game servers clusters delete cluster-quickstart --realm=realm-quickstart --no-dry-run --location=global
    
  6. レルムを削除するには、次のコマンドを実行します。

    gcloud game servers realms delete realm-quickstart
    
  7. Game Services API を無効にするには、次のコマンドを実行します。

    gcloud services disable gameservices.googleapis.com
    
  8. GKE クラスタを削除するには、次のコマンドを実行します。

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

次のステップ

Game Servers のコンセプトの技術的な概要について、Game Servers の概要を確認する。

入門ガイドで、特定の Game Servers タスクについて学習する。

Terraform デプロイのサンプルを確認する。