tags应用与版本

了解版本管理和应用程序——概念和最佳实践以加深理解。

📦 应用程序

应用程序封装服务器项目。如果您这样分离上下文会特别有用:

  • 同时开发多个游戏或非游戏项目(合并计费),

  • 作为共同开发者参与外部项目(稍后转移所有权),

  • 依赖多种松耦合且具有不同扩展模式或需求的服务器类型。

您可以使用我们的插件在 Edgegap 上管理您的应用程序, 仪表板arrow-up-right,或使用我们的 API。

circle-check

🏷️ 应用版本

随着您开发应用并持续产出新构建,您需要将每个构建存储为单独的版本,以便:

  • 保持兼容性 在您的客户端和服务器之间,

  • 比较您的各种 增量发布 (性能、用户反馈),

  • 测试 同时运行多个应用版本 (开发、质量保证、预发布、测试版)。

circle-info

每个应用版本指向您选择的一个构建工件。多个版本可以指向相同的构建。

您可以使用我们的 仪表板arrow-up-right,或使用我们的 API。

circle-check

每个版本在其父应用内通过以下方式唯一标识 应用版本名称。您可以自由决定自己的命名约定。这里有一些常见示例以供参考:

  • 2024.01.30-16.23.00-UTC - 时间戳对于保留多个历史版本非常直观,

  • 1.1.0 - 语义化版本控制arrow-up-right 是传达变更范围的绝佳选择,

  • 开发(dev) , 预发布(staging), 质量保证(qa), 生产(prod) - 每个环境仅保留最新版本非常简单,

  • 蓝(blue), 绿(green) - 版本可以作为滚动更新发布策略的别名使用。

circle-check
circle-info

您可以在我们的 仪表板arrow-up-right 转移到 以防人为(开发者)错误的保护措施.

circle-info

免费套餐限制为 2 个应用、2 个版本和 5 GB 的容器注册表存储。

结合版本管理策略

通常,最佳解决方案是多种版本策略的组合,例如:

  • 对开发构建使用时间戳或语义化版本以便更细粒度的跟踪;

  • 保留 预发布(staging), 质量保证(qa)生产(prod) 带有环境特定参数的版本;

  • 交替地 蓝(blue)绿(green) 将版本作为 零匹配等待时间更新的别名arrow-up-right.

🧱 必填参数

这些基础参数必须始终定义。

资源要求

版本名称外,创建新版本还需要几个参数:

  • vCPU - 您的应用运行所需的虚拟 CPU 单位数(1024 单位 = 1 vCPU),

    • 允许的最小 vCPU 数量为 0.25 vCPU(256 单位),

    • 此设置不能在现有应用版本上编辑,您必须创建新版本。

  • 内存 - 您的应用运行所需的内存大小(1024MB = 1GB),

    • 此设置不能在现有应用版本上编辑,您必须创建新版本。

  • GPU - 您的应用运行所需的图形处理单元数量,

    • 此功能尚不可用,如果您有兴趣请与我们联系。

circle-check
circle-info

我们的服务器使用 AMD/Intel CPU,时钟频率在 2.4 - 3.2 GHz 之间,因地区而异。为确保您的服务器有足够资源可用,请通过 社区 Discordarrow-up-right.

镜像详情

这些参数将帮助我们的系统决定稍后应启动哪个版本的服务器构建:

  • 注册表 - registry.edgegap.com 如果您正在使用我们的 容器注册表arrow-up-right,

    • 若要使用第三方注册表,请输入您的第三方注册表的 Docker 凭据,

    • 注册表作为您和其他用户的仓库的共享存储服务。

  • 镜像仓库 - 指的是您应用的专用仓库,

  • 每个仓库可能包含您服务器镜像的多个标签。 标签

    • - 指的是服务器镜像的特定构建工件(版本),

    • 我们的插件默认会将标签值从应用版本名称复制,

triangle-exclamation
  • 以部署预期的构建并防止发布问题。 私有注册表

    • - 如果您的仓库访问受保护(私有仓库),我们还需要: 用户名令牌

    • - 您的注册表的程序化访问用户名, 密码令牌

    • - 您的注册表的程序化访问密码, 容器注册表arrow-up-right对于 Edgegap ,您可以arrow-up-right,

    • 从我们的仪表板复制这些值

chevron-right公共仓库则不需要这些。hashtag

故障排除与常见问题 我在推送服务器镜像时收到错误 401 未授权

  • 这意味着您尚未登录到您的容器注册表。请参阅容器注册表中的 Edgegap 容器注册表说明arrow-up-right或您注册表提供商的等效说明。重复您上一次的操作不会解决此错误。


故障排除与常见问题 403 禁止访问 401 未授权

  • 这意味着当前登录的注册表用户可能没有足够的权限(通常是推送新镜像的权限),或者您登录的是错误的注册表提供商。尝试退出并以具有足够权限的正确提供商和用户重新登录。重复您上一次的操作不会解决此错误。


注册表、仓库和项目之间有什么区别?

  • 可以把注册表想象为存储设施,仓库是存储单元,项目是存储单元编号。每个注册表通常包含许多仓库,有些是公开的,有些对组织和用户是私有的。

  • 示例注册表: registry.edgegap.com .

  • 示例仓库: registry.edgegap.com/my-edgegap-org/my-game-server.

  • 示例项目名称: my-game-server .


在推送新镜像标签/构建时,我的更改没有正确重新加载。

  • 确保每次重建后都使用新的镜像标签进行推送。Edgegap 的内部缓存系统使用标签名,如果您覆盖了标签值(例如, 切勿 - 覆盖现有标签或使用)它将不会识别新构建。


我可以对同一构建工件进行多次打标签吗?

  • 可以,您可以对同一工件进行多次标记而不会出现问题,这些标签可作为指向同一构建的多个别名。继续阅读以了解如何稍后移除这些标签。


当我删除一个标签时会发生什么?为什么我不能使用哈希删除特定工件?

  • 删除标签也会导致相关的构建工件被删除,如果在 API 请求arrow-up-right.

  • 时没有其他与该工件关联的标签。

根据 Docker API 标准并为了确保最佳用户体验,我们仅提供删除标签的接口。有关删除构建工件,请参阅上文相关说明。

⚙️ 可选参数

未捕获的服务器异常会导致部署的容器重启并使 TLS 安全失效。在这种情况下,

这些参数可配置以进一步自定义您的部署。

  • 自定义环境变量将被注入到此版本的所有部署中:

  • 参见 将玩家重新匹配到新的部署 常见示例包括:引擎参数、第三方密钥和端点,

  • 为了解部署上下文中环境变量注入的不同方式,除应用版本变量外,

circle-exclamation

以增强安全性!

🌟 升级到按使用付费等级arrow-up-right 主动缓存

以解锁全球 0.5 秒部署时间! 加速部署并在几秒内启动服务器,无需备用服务器。

与此应用版本关联的服务器镜像将自动在我们全球所有地点预加载。

circle-check
circle-info

使参数化部署变得简单。

circle-exclamation

如果镜像连续 72 小时未被部署,将从缓存中移除。

端口映射

  • 每个服务器至少需要一个端口以接受传入客户端连接: 端口 值指的是 内部端口

  • 值,通常来自您的网络代码集成, 协议

  • 将取决于您的网络代码集成传输, 名称

  • 是供您使用的人类可读标识符,可以与端口相同, 验证

circle-check

大多数游戏只需为端口添加单个 UDP 端口映射即可, 虽然服务器进程的内部端口作为应用版本的一部分进行定义,外部端口在创建部署后会被随机分配

circle-info

,以便在潜在的恶意方(黑客)造成损害之前减慢其速度并被检测到。

如果您的服务器通过多种协议通信,请在端口映射中添加更多端口。

安全护栏

circle-exclamation
circle-info

免费套餐限制为 2 个应用、2 个版本和 5 GB 的容器注册表存储。

没有外部存储的版本在部署终止时其日志将被删除。

⏩ 更新一致性 仪表板arrow-up-right为了确保在您通过我们的 创建新应用版本时没有参数发生变化,我们建议使用 复制

circle-check
circle-info

参见 复制或编辑您的应用版本无需重新构建服务器镜像。arrow-up-right 匹配器滚动更新 以进一步实现发布的自动化.

最后更新于

这有帮助吗?