ロールアウトの作成または更新

このページでは、デプロイメント内の Game Servers ロールアウトの作成、更新、および詳細を表示する方法について説明します。ロールアウトにより、Game Servers 構成ファイルを対象のレルムにマッピングします。デプロイメントの作成、構成の追加、ロールアウトの方法のエンドツーエンドの例については、クラスタのスケーリング動作の構成をご覧ください。


図1 Config バージョン 1.0 は米国のレルムにロールアウトされ、バージョン 1.1 はヨーロッパと日本にロールアウトされました。

詳細については、Game Servers の概要をご覧ください。

始める前に

始める前に、Game Servers の概要の主なコンセプトを理解しておくことをおすすめします。次のタスクも完了していることを確認してください。

  • Game Services API が有効になっていることを確認します。
  • Game Services API を有効にする
  • gcloud CLI がインストールされているシェルを選択するか、API クライアントを使用します。
  • Cloud Shell

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

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

      Google Cloud Console

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

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

    ローカルシェル

    gcloud CLI をインストールします。

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

    gcloud config list project
    

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

    gcloud config set project PROJECT_ID
    

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

    gcloud version
    

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

    gcloud components update
    

    curl / PowerShell

    REST API を curl または Windows PowerShell で使用するには、次の操作を行います。

    1. サービス アカウントを作成する。
    2. 秘密鍵を JSON ファイルとしてダウンロードします。
    3. 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.

    クライアント ライブラリ

    Google Cloud Game Servers は、クライアント ライブラリを使用して、プログラムで制御できます。ライブラリと認証の手順については、クライアント ライブラリの概要をご覧ください。

ロールアウトの更新

ロールアウトを更新するプロセスは、ロールアウトを作成するプロセスと同じです。まず、Game Servers の構成ファイルを作成したことを確認します。別の構成を使用して特定のレルムをターゲットとする場合は、別のオーバーライド構成を作成します。

ロールアウトのデフォルトの構成ファイルの更新

デフォルトのゲームサーバー構成は、すべてのレルムにロールアウトされます。別の構成を使用して特定のレルムをターゲットにするには、特定のレルム向けに構成をオーバーライドするをご覧ください。

Console

  1. Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。

    Game Servers に移動

  2. テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。

  3. [Manage Rollout] をクリックします。

  4. (省略可)[構成を選択] リストで、すべてのレルムに適用されるデフォルト構成を選択します。

  5. [保存] をクリックします。

gcloud

Google Cloud CLI を使用して Game Servers のロールアウトのデフォルト構成を更新するには、次の手順を実行します。

  1. 次のプレースホルダ値を置き換えてから、下のコマンドを実行します。

    • deploymentID は、デプロイメントの一意の ID です。
    • configID は、構成の一意の ID です。
    gcloud game servers deployments update-rollout deploymentID --default-config configID --dry-run
    

    変更をプレビューできるように、出力では targetState が返されます。

  2. 変更を適用するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deploymentID --default-config configID --no-dry-run
    

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。
  • CONFIG_ID: 構成のユーザー定義の識別子。

JSON 本文をリクエストします。

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "defaultGameServerConfig": "CONFIG_ID"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

ロールアウトのデフォルトの構成ファイルをクリアする

デフォルトの構成ファイルをクリアして、このデプロイのフリート構成をすべての Game Servers クラスタから削除します。

Console

  1. Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。

    Game Servers に移動

  2. テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。

  3. [Manage Rollout] をクリックします。

  4. [構成を選択] リストで、[(no default config)] を選択します。

  5. [保存] をクリックします。

gcloud

Google Cloud CLI を使用して Game Servers のロールアウトのデフォルト構成をクリアするには、次の手順を実行します。

  1. 次のプレースホルダ値を置き換え、下のコマンドを実行します。

    • deploymentID は、デプロイメントの一意の ID です。
    gcloud game servers deployments update-rollout deploymentID --clear-default-config --dry-run
    

    変更をプレビューできるように、出力では targetState が返されます。

  2. 変更を適用するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deploymentID --clear-default-config --no-dry-run
    

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。

JSON 本文をリクエストします。

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "defaultGameServerConfig": ""
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

特定のレルムの構成ファイルのオーバーライド

別の構成を使用して特定のレルムをターゲットとする場合は、別のオーバーライド構成を作成し、このオーバーライド構成を受け取る(デフォルト構成ではなく)1 つ以上のレルムを選択します。

Console

  1. Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。

    Game Servers に移動

  2. テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。

  3. [Manage Rollout] をクリックします。

  4. (省略可)[構成を選択] リストで、オーバーライド構成に一致しないすべてのレルムに適用されるデフォルト構成を選択します。

  5. [Override configs] で、1 つまたは複数のオーバーライド構成と、それに関連付けるレルムを指定できます。

    1. [構成] リストからオーバーライド構成を選択し、[Realm] リストからそれに関連付けるレルムを選択します。
    2. 矢印ボタンを使用して、リスト内のオーバーライド構成の優先順位を変更します。
    3. [Add] をクリックします。
  6. [保存] をクリックします。

gcloud

Google Cloud CLI を使用して特定のレルムに構成のオーバーライドを適用するには、次の手順を実行します。

  1. 下のコードをファイルにコピーし、次のプレースホルダ値を置き換えます。

    • realmID は、レルムの完全修飾 ID(projects/<projectID>/locations/<region>/realms/<realmID2> など)です。
    • configID は、構成の一意の ID です。
    - realmsSelector:
        realms:
            - realmID
      configVersion: configID
    
  2. 次のプレースホルダ値を置き換えてから、下のコマンドを実行します。

    • deploymentID は、デプロイメントの一意の ID です。
    • configOverrideFile は、オーバーライド構成を含むファイルへのパスです。
    gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile --dry-run
    

    変更をプレビューできるように、出力では targetState が返されます。

  3. 変更を適用するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile  --no-dry-run
    

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • LOCATION: レルム(または global)のリージョン
  • DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。
  • REALM_ID: レルムのユーザー定義の識別子。
  • OVERRIDE_CONFIG_ID: オーバーライド構成のユーザー定義の識別子。

JSON 本文をリクエストします。

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "gameServerConfigOverrides": [
  {
    "realmsSelector": {
      "realms": [
        "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID"
      ]
    },
    "configVersion": "OVERRIDE_CONFIG_ID"
  }
  ]
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

構成ファイルのオーバーライドをクリアする

オーバーライド構成をクリアして、このデプロイのフリート構成を対象のレルムから削除します。

Console

  1. Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。

    Game Servers に移動

  2. テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。

  3. [Manage Rollout] をクリックします。

  4. [Override configs] で、クリアするオーバーライド構成の横にあるゴミ箱アイコンをクリックします。

  5. [保存] をクリックします。

gcloud

Google Cloud CLI を使用して Game Servers のロールアウトの構成のオーバーライドをクリアするには次の手順を実行します。

  1. 次のプレースホルダ値を置き換え、下のコマンドを実行します。

    • deploymentID は、デプロイメントの一意の ID です。
    gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --dry-run
    

    変更をプレビューできるように、出力では targetState が返されます。

  2. 変更を適用するには、次のコマンドを実行します。

    gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --no-dry-run
    

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。

JSON 本文をリクエストします。

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "gameServerConfigOverrides": []
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

ロールアウトの詳細表示

Console

  1. Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。

    Game Servers に移動

  2. テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。

  3. [Manage Rollout] をクリックします。

gcloud

Google Cloud CLI を使用して、使用中の構成など、ロールアウトに関する詳細を表示できます。

ロールアウトの詳細を表示するには、次のプレースホルダ値を置き換え、下のコマンドを実行します。

  • deploymentID は、親デプロイメントの一意の ID です。
gcloud game servers deployments describe-rollout deploymentID

ロールアウトの詳細が出力に表示されます。

Google Cloud CLI を使用して、ロールアウトが適用された後に、ゲームサーバー クラスタの状態を表示することもできます。

gcloud game servers deployments fetch-state deploymentID

出力には、各 Game Servers クラスタでロールアウトによって適用された変更が表示されます。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/rollout",
  "createTime": CREATE_TIME,
  "updateTime": UPDATE_TIME,
  "defaultGameServerConfig": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
  "gameServerConfigOverrides": [
    {
      "realmsSelector": {
        "realms": [
          "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID"
        ]
      },
      "configVersion": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/OVERRIDE_CONFIG_ID"
    }
  ],
  "etag": "cN31kxa6fWHtaZWUnUZ7LfamUN7Ggz13DWS58Sc5jIQ"
}

ロールアウトのトラブルシューティング

このセクションでは、Game Servers によって Game Servers クラスタが更新されない場合の理由について説明します。一般的な原因としては、Game Servers または Game Servers クラスタの構成の誤りが考えられます。次のチェックリストを確認して、発生している潜在的な問題を診断します。

  • Agones クラスタが次の前提条件を満たしていることを確認します。
    1. クラスタが稼働していて、Agones がインストールされていることを確認する。agones-controller Pod が Running 状態になっていることを確認するには、次のコマンドを実行します。
      kubectl get pods -n agones-system -l agones.dev/role=controller
      
    2. Game Servers の Namespace に、Agones コントローラに必要なロールベースのアクセス制御(RBAC)の権限があることを確認する。
    3. インストールされている Agones のバージョンが Game Servers でサポートされていることを確認する。
  • Agones のトラブルシューティング ガイドを確認します。
  • Game Servers デプロイメント リソースが正しく構成されていることを確認します。
    1. オーバーライド構成ファイルを使用している場合は、デプロイメントがターゲット クラスタのあるレルムに適用されていることを確認する。
    2. フリートの仕様が正しく構成されていることを確認する。フリートの仕様を検証するには、手動で Game Servers を起動してください。
    3. スケジュールされた変更が行われていない場合は、スケジュールが正しく設定されていることを確認してください。スケジュールのタイムゾーンはレルムのタイムゾーンに従います。

次のステップ

構成ファイルを削除する方法を学習する。