Feature gates


This page explains how Kubernetes feature gates function in Google Kubernetes Engine (GKE). Feature gates are a set of key-value pairs that toggle Kubernetes features. You can't modify Kubernetes feature gates in GKE clusters.

The Kubernetes project releases new features in stages over time. Features can be in the alpha, beta, or GA stage.

To see what features are enabled for your cluster running version 1.26 or later, check the feature gate state.

Alternatively, to verify the stage of a feature corresponding to the version of your cluster's control plane or nodes, check the Feature gates for Alpha or Beta features table in the Kubernetes documentation.

GA Kubernetes features in GKE

GA (also referred to as stable) Kubernetes features are enabled on GKE by default and cannot be disabled.

Beta Kubernetes features in GKE

Beta features are usually enabled by default in GKE. GKE might disable a specific beta feature for a particular version to mitigate a known issue with the feature, to ensure backwards compatibility, or because integration and qualification of the feature in GKE is not yet complete.

If you want to use a beta Kubernetes feature in your GKE cluster running version 1.26 or later, check that this feature is enabled by checking the feature gate state. If your cluster is running a version earlier than 1.26, you can check if the feature is enabled by testing the feature.

Contact Cloud Customer Care if you can't verify whether the beta feature is enabled for your GKE cluster's control plane or node version.

Alpha Kubernetes features in GKE

Alpha Kubernetes features are disabled by default in all GKE clusters. GKE might enable a specific alpha feature in a specific control plane version.

To enable all alpha Kubernetes features, create an alpha Standard cluster.

Check feature gate state

With clusters running version 1.26 or later, you can run a kubectl command to check what features are enabled.

Check the feature gate state for your GKE cluster:

  1. Install and configure kubectl access
  2. Run the following command:

    kubectl get --raw /metrics | grep kubernetes_feature_enabled
    

    The output, like in the following example, shows you the name of the feature gate, the corresponding stage ("" is GA), and whether the feature gate is enabled. 1 means enabled and 0 means disabled.

    See the following example output:

    # 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
    ...
    

    This output indicates that, for example, the APIResponseCompression feature is enabled and in the beta stage.

What's next