Release channels

This topic introduces release channels, which provide more control over automatic upgrades of your GKE clusters.

Overview

Kubernetes releases updates often, to deliver security updates, fix known issues, and introduce new features. Release channels provide control over how often clusters are automatically updated , and offer customers the ability to balance between stability and functionality of the version deployed in the cluster.

When you enroll a new cluster in a release channel, Google automatically manages the version and upgrade cadence for the cluster and its node pools. All channels offer supported releases of GKE and are considered GA (although individual features may not always be GA, as marked). The Kubernetes releases in these channels are official Kubernetes releases and include both GA and beta Kubernetes APIs (as marked). New Kubernetes versions are first released to the Rapid channel, and over time will be promoted to the Regular, and Stable channel. This allows you to subscribe your cluster to a channel that meets your business, stability, and functionality needs.

What channels are available?

The following release channels are available. Each has a different release cadence and offers a trade-off between feature availability and update churn.

Channel New Kubernetes release availability Properties
Rapid Several weeks after upstream open source GA Get the latest Kubernetes release as early as possible, and be able to use new GKE features the moment they go GA. Your cluster is frequently updated to stay on the latest technology, but being among the first to experience new features can occasionally be disruptive
Regular (default) 2-3 months after releasing in Rapid Access GKE and Kubernetes features reasonably soon after they debut, but on a more steady and predictable release cadence. Offers a good balance of feature availability and update stability, and is what we recommend for most users
Stable 2-3 months after releasing in Regular. Prioritize stability over new functionality. Changes and new versions in this channel are rolled out last, after being released on the Rapid, and Regular channels which allows even more time for validation

When you enroll a cluster in a release channel, that cluster is upgraded automatically when a new version is available in that channel.

When a minor version has accumulated cumulative usage and demonstrated stability in the Rapid channel, its new patch releases are promoted to the Regular channel. Eventually, the minor version is promoted to the Stable channel, which only receives high-priority updates. Each promotion signals a graduating level of stability and production-readiness, based on observed performance of clusters running that version.

Critical security patches are delivered to all release channels, to protect your clusters and Google's infrastructure.

Exact release schedules depend on multiple factors and cannot be guaranteed.

Finding out what's new

Separate release notes are available for each release channel, in addition to the overall release notes.

Release channel Release notes
Rapid channel HTML or Atom feed
Regular channel HTML or Atom feed
Stable channel HTML or Atom feed

Selecting a release channel

You can create a cluster that uses release channels to manage its version instead of using the default version or choosing a specific version. The cluster only receives updates from that release channel.

Console

When you create a cluster, you can choose to enroll the cluster in a release channel instead of using the default version or choosing a specific version.

  1. Visit the Google Kubernetes Engine menu in Cloud Console.

    Visit the Google Kubernetes Engine menu

  2. Click the Create cluster button.

  3. Under Master version, select Release channel.

  4. In the Release channel drop-down list, select a release channel to enroll the cluster in.

  5. Continue creating the cluster as desired.

  6. Click Create.

gcloud

To create and enroll a cluster in a release channel, run the following command:

gcloud beta container clusters create cluster-name \
      --zone compute-zone \
      --release-channel channel \
      additional-flags

where:

  • cluster-name is the name of your new cluster.
  • compute-zone is the compute zone for your cluster.
  • channel is the type of release channel: one of rapid, regular, or stable.
  • additional-flags are any other flags you need to specify when creating your cluster. For the full list of optional flags, refer to the gcloud container clusters create documentation.

Auto-upgrade is enabled (and cannot be disabled), so your cluster is updated automatically from releases available in the chosen release channel.

Finding your cluster's channel

You can determine your cluster's release channel using gcloud or the Google Cloud Console.

Console

  1. Visit the Google Kubernetes Engine menu in Google Cloud Console.

    Visit the Google Kubernetes Engine menu

  2. Select the desired cluster.

  3. Under Cluster details, read the value in the Release Channel field (for example, "Regular Channel").

gcloud

gcloud beta container clusters describe cluster-name \
  --zone compute-zone --format="value(releaseChannel.channel)"

where:

  • cluster-name is the name of your cluster.
  • compute-zone is the compute zone for your cluster.

Enrolling an existing cluster in a release channel

You can enroll an existing cluster in a release channel, provided that the cluster master version is the same as the version used in the release channel.

For example, to find the default master version of the stable channel in us-central1:

gcloud beta container get-server-config --region us-central1 | grep -A 1 STABLE

To enroll an existing cluster in a release channel, run the following command:

gcloud beta container clusters update cluster-name \
    --release-channel channel

where:

  • cluster-name is the name of your cluster.
  • channel is the type of release channel: one of rapid, regular, or stable.

Unsubscribing from a release channel

You can unsubscribe a cluster from a release channel, if the cluster is on the stable or regular release channel. You cannot unsubscribe a cluster from the rapid release channel. The node pools for the cluster will continue to have auto-upgrade and auto-repair enabled, even after disabling release channels.

To unsubscribe a cluster from a release channel, run the following command:

gcloud beta container clusters update cluster-name --release-channel=None

Migrating between release channels

Migrating between release channels is supported in limited scenarios.

If you would like to promote a cluster from Stable to Regular, first unsubscribe the cluster from Stable and enroll the cluster in Regular.

Migrating from Regular to Stable is not possible due to the risk in downgrading across Kubernetes minor versions. In this case, we encourage that you create a new cluster in Stable and migrate your workloads.

Caveats

Keep the following caveats in mind when using release channels.

Differences between Rapid-channel clusters and alpha clusters

Clusters created using the Rapid release channel are not alpha clusters. Here are the differences:

  • Clusters that use release channels can be upgraded, and auto-upgrade is enabled and cannot be disabled. Alpha clusters cannot be upgraded.
  • Clusters that use release channels do not expire. Alpha clusters expire after 30 days.
  • Alpha Kubernetes APIs are not enabled on clusters that use release channels.

What's next