Release channels

This topic introduces release channels, which provide GKE best practices for versioning and upgrading your GKE clusters.

Overview

Kubernetes releases updates often, to deliver security updates, fix known issues, and introduce new features. Release channels offer customers the ability to balance between stability and feature set 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 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, it is 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.

What versions are available in a channel?

Each release channel offers a set of available versions for that channel. These versions have met the qualification bar for that specific channel.

  • New patch releases become available one week prior to becoming default.
  • New minor releases become available 4 weeks prior to becoming default.

GKE recommends testing available versions to ensure that auto-upgrade is non-disruptive. Subscribing a pre-production environment to receive all versions made available in a channel is one such approach. In the event that more time is required for testing or validation, GKE recommends using exclusion windows to postpone auto-upgrade.

GKE automatically upgrades clusters to the default version gradually. If more control over the upgrade process is necessary, we recommend upgrading ahead of time to an available version. GKE auto-upgrade skips manually-upgraded clusters.

gcloud

To view the default and available versions for release channels, run the following command:

gcloud container get-server-config --format "yaml(channels)" \
  --zone compute-zone

where:

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

Subscribe to a release channel to take advantage of GKE best practices for versioning and upgrading your GKE clusters.

Console

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

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 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 cluster master version is upgradeable to the release channel default. This means that the release channel default version must be the same or at most one minor version greater than the existing cluster master version.

To enroll, update the cluster release channel to the desired channel.

Selecting a new release channel

Migrating between release channels is supported in limited scenarios.

A transition that results in a single minor version upgrade, such as migrating from Stable to Regular, is supported.

Downgrades, such as migrating from Regular to Stable, are not possible due to the risk in downgrading across Kubernetes minor versions. Similarly, upgrades of more than a single minor version, such as migrating from Stable to Rapid, are not supported.

To select a new release channel, update the cluster release channel to the desired channel.

In cases where selecting a new release channel is not supported, we encourage you to create a new cluster in the desired channel and migrate your workloads.

Unsubscribing from a release channel

If you choose to unsubscribe from a channel, the node pools for the cluster will continue to have auto-upgrade and auto-repair enabled, even after disabling release channels.

To unsubscribe, update the cluster release channel with a channel of None.

Updating the cluster release channel

gcloud

To edit the release channel property of an existing cluster, run the following command:

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

where:

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

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