功能门控


本页面介绍 Kubernetes 功能门控在 Google Kubernetes Engine (GKE) 中的工作原理。功能门控是一组用于切换 Kubernetes 功能的键值对。您无法在 GKE 集群中修改 Kubernetes 功能门控。

Kubernetes 项目会随着时间的推移分阶段发布新功能。功能可以处于 Alpha 版、Beta 版或 GA 阶段。

如需查看为运行 1.26 版或更高版本的集群启用了哪些功能,请检查功能门控状态

或者,如需验证与集群的控制平面或节点版本相对应的功能阶段,请查看 Kubernetes 文档中的 Alpha 版或 Beta 版功能门控表。

GKE 中的正式版 Kubernetes 功能

正式版(也称为稳定版)Kubernetes 功能在 GKE 上默认处于启用状态,且无法停用

GKE 中的 Beta 版 Kubernetes 功能

Beta 版功能通常默认在 GKE 中启用。GKE 可能会停用特定版本的特定 Beta 版功能,以缓解该功能的已知问题,以确保向后兼容性,或者因为 GKE 中的功能集成和资格认证尚未完成。

如果要在运行 1.26 版或更高版本的 GKE 集群中使用 Beta 版 Kubernetes 功能,请通过检查功能门控状态来检查是否已启用此功能。如果您的集群运行的版本低于 1.26,您可以通过测试功能来检查是否启用了该功能。

如果您无法验证自己的 GKE 集群的控制平面或节点版本是否启用了某个 Beta 版功能,请与 Cloud Customer Care 联系

GKE 中的 Alpha 版 Kubernetes 功能

默认情况下,Alpha 版 Kubernetes 功能在所有 GKE 集群中都处于停用状态。GKE 可能在特定控制平面版本中启用特定的 Alpha 版功能。

要启用所有 Alpha 版 Kubernetes 功能,请创建一个 Alpha 版 Standard 集群

检查功能门控状态

对于运行 1.26 版或更高版本的集群,您可以运行 kubectl 命令来检查已启用哪些功能。

检查 GKE 集群的功能门控状态:

  1. 安装 kubectl 并配置 kubectl 访问权限
  2. 运行以下命令:

    kubectl get --raw /metrics | grep kubernetes_feature_enabled
    

    如以下示例所示,输出显示功能门控的名称、相应的阶段("" 为正式版),以及功能门控是否已启用。1 表示已启用,0 表示已停用。

    请参阅以下示例输出:

    # HELP kubernetes_feature_enabled [BETA] This metric records the data about the stage and enablement of a k8s feature.
    # TYPE kubernetes_feature_enabled gauge
    kubernetes_feature_enabled{name="APIListChunking",stage=""} 1
    kubernetes_feature_enabled{name="APIPriorityAndFairness",stage=""} 1
    kubernetes_feature_enabled{name="APIResponseCompression",stage="BETA"} 1
    kubernetes_feature_enabled{name="APISelfSubjectReview",stage=""} 1
    kubernetes_feature_enabled{name="APIServerIdentity",stage="BETA"} 1
    kubernetes_feature_enabled{name="APIServerTracing",stage="BETA"} 1
    kubernetes_feature_enabled{name="AdmissionWebhookMatchConditions",stage="BETA"} 1
    ...
    

    例如,此输出表明 APIResponseCompression 功能已启用且处于 Beta 版阶段。

后续步骤

  • 如需查看当前 Kubernetes 功能的完整列表,请参阅功能门控
  • 如需查看 GKE 功能的完整列表,请参阅 GKE 版本说明