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 which automatic updates a given cluster receives based on the stability requirements of the cluster and its workloads.

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. A version must meet increasing stability requirements to be eligible for a more stable channel, and more stable channels receive fewer, less frequent updates.

What channels are available?

The following release channels are available. Each has a different release cadence and targets different types of workloads.

Channel Upgrade cadence Intended Use Expectations
Rapid Weekly Non-production clusters that want to try out new Google Kubernetes Engine or Kubernetes features. Not covered by the GKE SLA. The latest features, before any other channel. Potentially more unresolved issues than other channels, including the possibility of issues with no known workarounds. Not supported for production workloads.
Regular Multiple per month Production clusters that need features not yet offered in the Stable channel. These versions are considered production-quality. Known issues generally have known workarounds.
Stable Every few months Production clusters that require stability above all else, and for which frequent upgrades are too risky. These versions are considered production-quality, with historical data to indicate that they are stable and reliable in production.

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, and updates happen less frequently. 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. Read the value of Release 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

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