创建或更新发布

本页面介绍如何在部署中创建、更新 Game Servers 发布以及查看其详情。发布可将游戏服务器配置映射到目标大区。如需查看创建部署,添加配置然后发布部署的端到端示例,请参阅配置集群扩缩行为


图 1.配置版本 1.0 发布到美国大区,版本 1.1 发布到欧洲和日本大区

如需了解详情,请参阅 Game Servers 概览

准备工作

开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:

  • 确保您已启用 Game Services API。
  • 启用 Game Services API
  • 选择已安装 gcloud CLI 的 shell,或使用 API 客户端:
  • Cloud Shell

    如需启动 Cloud Shell,请执行以下步骤:

    1. 转到 Google Cloud Console。

      Google Cloud Console

    2. 在控制台的右上角,点击激活 Cloud Shell 按钮:

    控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

    本地 shell

    安装 gcloud CLI

    确认您已为 Google Cloud CLI 设置所需的默认项目(否则,您稍后需要为每个命令明确指定 --project 标志):

    gcloud config list project
    

    如果无法运行以下命令来设置默认项目,请将 PROJECT_ID 替换为所需的项目 ID:

    gcloud config set project PROJECT_ID
    

    运行以下命令以验证 Google Cloud CLI 的版本。Game Servers 要求使用 306.0.0 或更高版本的 gcloud CLI。

    gcloud version
    

    如需更新安装,请运行以下命令:

    gcloud components update
    

    curl / PowerShell

    如需将 REST API 与 curl 或 Windows PowerShell 搭配使用,请执行以下操作:

    1. 创建服务帐号。
    2. 以 JSON 文件的格式下载私钥。
    3. 将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。

    客户端库

    您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览

更新发布

更新发布的过程与创建发布的过程相同。首先,确保您已创建 Game Servers 配置。如果您要使用另一个配置来定位特定大区,请创建单独的替换配置。

更新发布的默认配置

默认游戏服务器配置会发布到所有大区。如需使用另一个配置来定位特定大区,请参阅替换特定大区的配置

控制台

  1. 在控制台中,转到 Game Server Deployments 页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 点击管理发布

  4. (可选)在选择配置列表中,选择应用于所有大区的默认配置。

  5. 点击保存

gcloud

如需使用 Google Cloud CLI 更新 Game Servers 部署的默认配置,请执行以下操作:

  1. 替换以下占位值后运行以下命令:

    • deploymentID 是部署的唯一标识符。
    • configID 是配置的唯一标识符。
    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_IDIAM 设置中列出的 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 集群中移除此部署的队列配置。

控制台

  1. 在控制台中,转到 Game Server Deployments 页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 点击管理发布

  4. 选择配置列表中,选择(无默认配置)

  5. 点击保存

gcloud

如需使用 Google Cloud CLI 清除 Game Servers 部署的默认配置,请执行以下操作:

  1. 替换以下占位值后运行以下命令:

    • deploymentID 是部署的唯一标识符。
    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_IDIAM 设置中列出的 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. 在控制台中,转到 Game Server Deployments 页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 点击管理发布

  4. (可选)在选择配置列表中,选择应用于与替换配置不匹配的所有大区的默认配置。

  5. 替换配置下,您可以指定一个或多个替换配置,以及要与这些配置关联的大区。

    1. 配置列表中选择一个替换配置,然后从大区列表中选择要与之关联的大区。
    2. 使用箭头按钮更改替换配置在列表中的优先顺序。
    3. 点击添加
  6. 点击保存

gcloud

如需使用 Google Cloud CLI 将配置替换应用于特定大区,请执行以下操作:

  1. 将以下代码复制到一个文件中,并替换以下占位值:

    • realmID 是大区的完全限定标识符,例如 projects/<projectID>/locations/<region>/realms/<realmID2>
    • configID 是配置的唯一标识符。
    - realmsSelector:
        realms:
            - realmID
      configVersion: configID
    
  2. 替换以下占位值后运行以下命令:

    • deploymentID 是部署的唯一标识符。
    • 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_IDIAM 设置中列出的 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
}

清除配置替换

清除替换配置,以从目标大区移除此部署的队列配置。

控制台

  1. 在控制台中,转到 Game Server Deployments 页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 点击管理发布

  4. 替换配置下,点击要清除的替换配置旁边的垃圾桶图标。

  5. 点击保存

gcloud

如需使用 Google Cloud CLI 清除 Game Servers 部署的配置替换,请执行以下操作:

  1. 替换以下占位值后运行以下命令:

    • deploymentID 是部署的唯一标识符。
    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_IDIAM 设置中列出的 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
}

查看有关发布的详细信息

控制台

  1. 在控制台中,转到 Game Server Deployments 页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 点击管理发布

gcloud

您可以使用 Google Cloud CLI 查看有关部署的详细信息,例如正在使用的配置:

如需查看发布的详细信息,请在替换以下占位值后运行以下命令:

  • deploymentID 是父级部署的唯一标识符。
gcloud game servers deployments describe-rollout deploymentID

输出会显示发布的详细信息。

您还可以使用 Google Cloud CLI 查看发布后游戏服务器集群的状态:

gcloud game servers deployments fetch-state deploymentID

输出会显示每个游戏服务器集群上的发布所应用的更改。

REST 和命令行

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 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 或游戏服务器集群的配置错误。您可以参照以下核对清单来诊断遇到的潜在问题:

  • 检查满足 Agones 集群的以下前提条件:
    1. 确保集群正在运行并且安装了 Agones。如需验证 agones-controller pod 是否处于 Running 状态,请运行以下命令:
      kubectl get pods -n agones-system -l agones.dev/role=controller
      
    2. 确保游戏服务器命名空间拥有 Agones 控制器的基于角色的必需的访问权限控制 (RBAC) 权限。
    3. 确保 Game Servers 支持已安装的 Agones 版本。
  • 请查阅 Agones 问题排查指南
  • 检查 Game Servers 部署资源是否配置正确:
    1. 如果您使用的是替换配置,请确保该部署适用于包含目标集群的大区。
    2. 确保队列规范配置正确。要验证队列规范,请尝试手动启动游戏服务器。
    3. 如果未发生计划的更改,请确保正确配置了时间表。时间表的时区遵循大区的时区

后续步骤

了解如何删除配置