本页面介绍了发布具有 Canary 阶段的新 Game Servers 配置的两个不同选项。在 Canary 阶段,您可以将新配置部署到一小部分客户。这有助于您找出潜在问题,而不会影响所有用户。
第一种方式是使用 Canary 版地区。此选项的设置较为简单,但错误的发布会影响整个地区。另一种方法是创建 Canary 部署。此选项更加灵活,但管理起来较为复杂。
准备工作
开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:
- 确保您已启用 Game Services API。 启用 Game Services API
- 选择已安装 gcloud CLI 的 shell,或者使用 API 客户端:
进入 Google Cloud 控制台。
在控制台的右上角,点击激活 Cloud Shell 按钮:
- 创建服务帐号。
- 以 JSON 文件的格式下载私钥。
-
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.
Cloud Shell
如需启动 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 搭配使用,请执行以下操作:
客户端库
您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览。
验证发布的运行状况
务必在发布期间检查服务器在各个点的运行状况。您可以使用收集的数据来帮助您决定是否继续发布过程。如果健康检查发现问题,则最好暂停或取消发布。
您可以使用以下建议来验证发布过程的运行状况:
确保各个游戏服务器实例的状态为
Ready
。验证 Agones 可以分配和管理
GameServer
的完整生命周期。确保主部署和 Canary 部署GameServers
的标签与预期的GameServerAllocation
required
选择器相匹配,这样您的匹配器就不需要进行更改即可从 Canary 部署中分配。您也可以选择使用GameServerAllocation
规范中的“首选”属性,从 Canary 版队列中优先分配。监控并确保您部署中的任何相关游戏指标和系统指标都没有指示性能下降。
发布 Canary 版地区
借助 Game Servers,您可以在一个或多个大区中替换配置。确保 Canary 版地区中的集群位于不同的大区中。
在此示例中,“australia”大区是 Canary 版大区。
要在 australia
大区中将 v2
设置为活跃配置,请执行以下操作:
将以下代码复制到文件中:
- realmsSelector: realms: - projects/games/locations/australia-southeast1/realms/australia configVersion: v2
如需应用更改,请运行以下命令:
gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile --no-dry-run
其中,configOverrideFile 是具有替换配置的文件的路径。
确认 Canary 版地区运行状况良好后,请运行以下命令可在所有位置部署新版本:
gcloud game servers deployments update-rollout stk --default-config "v2" --no-dry-run
操作完成后,v2
配置将在所有位置发布。
现在,通过运行以下命令清理替换:
gcloud game servers deployments update-rollout stk --no-dry-run --clear-config-overrides
发布 Canary 部署
您可以使用单独的部署来测试配置。最初,还没有专门的 Canary 部署。
首先,创建 Canary 部署:
gcloud game servers deployments create canary
确保 GameServerAllocation 中使用的选择器能够从主队列和 Canary 版队列中选择 GameServers,因此您当前的分配策略不需要做任何更改。
接下来,运行以下命令创建一个与非 Canary 部署中的活跃配置相同的
v1
配置:gcloud game servers configs create v1 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
其中,fleetSpecFile 是包含队列规范的文件的路径。scalingConfigFile 是包含所有扩缩配置的文件的路径。
我们建议设置扩缩配置,以使 Canary 版队列比常规队列小得多。
运行以下命令以更新 Canary 版发布,从而将
v1
配置发布到所有位置:gcloud game servers deployments update-rollout canary --default-config v1 --no-dry-run
验证 Canary 版队列是否运行状况良好。
运行以下命令,在 Canary 部署中创建
v2
配置:gcloud game servers configs create v2 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
其中,fleetSpecFile 是包含队列规范的文件的路径。scalingConfigFile 是包含所有扩缩配置的文件的路径。我们建议将 Canary 版队列配置为较小的大小。
运行以下命令将
v2
配置发布到 Canary 部署:gcloud game servers deployments update-rollout canary --default-config v2 --no-dry-run
验证 Canary 版队列是否运行状况良好。
运行以下命令,将
v2
配置发布到主部署:gcloud game servers deployments update-rollout stk --default-config v2 --no-dry-run
验证队列是否运行状况良好。在此阶段,
v2
已在所有位置发布。清理 Canary 部署。
通过运行以下命令清除 Canary 部署的发布:
gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
运行以下命令以删除“v1”配置:
gcloud game servers configs delete v1 --deployment=canary
运行以下命令删除“v2”配置:
gcloud game servers configs delete v2 --deployment=canary
通过运行以下命令移除 Canary 部署:
gcloud game servers deployments delete canary
要对部署进行更精细的控制,您可以使用替换将配置发布到所选大区,然后再将配置设为默认设置。按照相同的过程逐步发布 Canary 版。
您可以通过维护正在进行的 Canary 部署来跳过前三个步骤和最后一步。对于频繁发布和定期发布,我们建议使用此方法。