Versioning and Upgrades

Kubernetes Engine clusters support running Kubernetes versions from any of the last three minor releases (currently 1.9.x, 1.8.x, and 1.7.x). However, subsequent intermediate releases might change what versions are available for new clusters.

Kubernetes releases a new minor version approximately every three months. A minor version increments the Kubernetes version from 1.x to 1.x+1; for example, Kubernetes 1.9 is the minor release that follows Kubernetes 1.8. New Kubernetes patch releases (for example, 1.8.6) become available for use with Kubernetes Engine each week, rolled out incrementally in each zone on a schedule published in the release notes for every release.

Automatic master upgrades

New Kubernetes Engine clusters are created with a default version that represents a recent stable release of the latest Kubernetes minor version. The Kubernetes Engine team periodically performs automatic upgrades of your cluster master to newer stable versions of Kubernetes. Newer versions than the default are also generally available on a weekly basis; you can also manually initiate a master upgrade to a version newer than the default.

Node upgrades

Your existing cluster nodes are not automatically upgraded by default. If you want to have your cluster's nodes upgraded automatically, you can enable automatic node upgrades. Kubernetes Engine does not support running node versions more than two minor versions behind the master version. For example, if the cluster master is running version 1.8, nodes should be running at least version 1.7 or 1.6. Nodes may not run a newer version of Kubernetes than your cluster master.

Checking available versions

You can check which Kubernetes versions are default and available in a given zone by running the following command:

gcloud container get-server-config --zone [COMPUTE-ZONE]

where [COMPUTE-ZONE] is your cluster's compute zone, such as us-central1-a. However, if you run this command before a version rollout has completed, the command's output might not be accurate for your zone.

Last updated: February 27, 2018

Specifying cluster version

When specifying a Kubernetes version to use with a gcloud command, you may specify either explicit versions or use version aliases, which have the following behavior:

  • latest: picks the highest valid Kubernetes version
  • 1.X: picks the highest valid patch+gke.N patch in the 1.X version
  • 1.X.Y: picks the highest valid gke.N patch in the 1.X.Y version
  • 1.X.Y-gke.N: picks an explicit Kubernetes version
  • -: picks the default Kubernetes version. For node upgrades, this picks the version that the cluster master is running.

The latest alias refers to the highest supported Kubernetes version available on Kubernetes Engine. Creating or upgrading a cluster by specifying the version as latest does not provide auto-upgrades. Enable automatic node upgrades to ensure that the nodes in your cluster up to date with the latest stable version of Kubernetes.

Versions available for new cluster masters

When you create a new cluster, you can choose from the following eligible Kubernetes versions for your cluster master:

  • 1.9.4-gke.1
  • 1.9.3-gke.0
  • 1.9.2-gke.1
  • 1.8.9-gke.1
  • 1.8.8-gke.0 (default for zonal and regional clusters)
  • 1.7.14-gke.1
  • 1.7.12-gke.2

Supported node versions

The following Kubernetes versions are supported for Kubernetes Engine cluster nodes:

  • Kubernetes 1.9.x
  • Kubernetes 1.8.x
  • Kubernetes 1.7.x

Send feedback about...

Kubernetes Engine