管理特性门控

什么是特性门控?我们为什么需要它?

部分 Google Distributed Cloud (GDC) 网闸隔离设备客户必须完成认证流程,以满足一组合规性要求。这些客户可能具有特定功能,必须先通过第三方的认证审核,然后才能针对生产工作负载启用这些功能。

某些功能可能需要多个版本才能最终确定,在稳定且准备就绪之前,不应向所有客户公开。不过,其他客户可能希望与 Google 合作,针对未发布的功能进行概念验证测试。

GDC 引入了几个概念,用于在功能准备就绪之前对其进行保留:

  • 部署功能级别阈值(部署阈值):定义了设备使用的最低级别。这是在启动时设置的。

  • FeatureGate 资源:定义跟踪每个功能的默认成熟度级别的顶级配置。该资源还会跟踪操作员添加的任何功能替换。

  • 功能级别:跟踪给定功能设置的成熟度级别。当功能值大于或等于部署阈值时,该功能处于启用状态。

可能的特征级别值(按升序排列)包括:DEVTESTPREVIEWPRODUCTIONACCREDITED

例如,如果部署阈值设置为 PRODUCTION,则启用设置为功能级别 ACCREDITEDPRODUCTION 的功能。如果部署阈值设置为 ACCREDITED,则仅启用级别为 ACCREDITED 的功能。

功能门或级别与您在消费类产品中看到的 A/B 测试不同。对于整个 GDC 设备,功能门控处于开启或关闭状态。功能开关旨在在认证审核完成后开启并保持开启状态。

具有认证要求的部署必须有自己的 FeatureGate 配置,该配置必须与已认证的相应版本或先前版本相匹配。

功能级使用情况

以下三个自定义资源定义与配置特性门控和级别相关:

  • Stage:定义集群的部署阈值。存储部署最低阶段阈值,该阈值用于与特性门控进行比较,以确定特性启用情况。
  • FeatureGate:存储每个功能的默认阶段,并跟踪所有替换项。
  • SubcomponentOverride:由功能门控系统使用,用于替换功能的默认阶段以启用该功能。在其他情境中出现在其他位置。

阶段值是存储在每个集群中的部署最低阈值。此值只能在引导启动期间设置,并且在引导启动后不得更改。启用具有相等或更大功能阶段值的所有功能。 如需替换功能门的默认阶段,请参阅 OOPS-P0072

功能门控类似于升级。映像或版本未发生变化,但实际上是升级的最后一步,用于启用之前升级中添加的功能。此功能可能在初始升级后的数周或数月内启用,具体取决于认证所需的时间。在认证期间,继续定期执行升级,以获取修复和补丁。

当功能被替换时,GDC 会触发协调器来重启所有依赖于该功能的 pod。此操作必须在维护窗口期间完成,因为某些更改可能需要停机。

某些功能附带了服务手册 runbook,其中介绍了必须启用该功能的时机,以及应用替换项后应注意的事项。这可能适用于需要执行的操作不仅仅是重启 pod,或者必须在启用其他功能后执行的操作。

您可以在相关可操作组件随附的服务手册中找到这些功能运行手册。

功能阶段文档中提供了有效功能门的列表。