← Back to Blog

When will your GKE cluster upgrade itself? Read the release schedule, then move the date

  • Google Cloud
When will your GKE cluster upgrade itself? Read the release schedule, then move the date

Ask a small team when their Kubernetes cluster will next upgrade itself and you get one of two answers: "it does not" or "no idea". Both are wrong in the same way. GKE publishes the dates. They sit on a page most people have never opened, and they are the difference between an upgrade that lands on a quiet Sunday and one that lands while your busiest customer is checking out.

This is the work we do on a client cluster in the first week: find the date, decide whether it is a good date, and move it if it is not. Here is the order we do it in.

Where GKE publishes the schedule, and how to read it

The page is called the GKE release schedule. It is a table with one row per Kubernetes minor version and a column per release channel: Rapid, Regular, Stable and Extended. For each version and channel it gives the date the version becomes available for new clusters and the date GKE begins auto-upgrading existing clusters to it. Checked 30 September 2026.

Two things about that table matter more than the numbers in it. The documentation says the dates are best-effort predictions, and that availability and upgrade dates can be delayed depending on the qualification and stability of a release, so treat a date as a window rather than an appointment. And the spacing between channels is the thing you are really choosing:

  • Rapid picks up a minor version one to two weeks after it reaches general availability upstream in open source Kubernetes, and targets auto-upgrade one to two months after that.
  • Regular sits in the middle, and it is the reference point for the support clock below: support for a minor version is counted from the day it becomes available in Regular.
  • Stable receives a version three to four months after Regular, and targets auto-upgrade roughly two months after that. It prioritises stability over new features.
  • Extended lines up with Regular for availability, and keeps a minor version supported for longer.

There is a second feed worth a bookmark: the per-channel release notes. Every week or two, GKE marks individual patch versions as deprecated inside a channel. The Google Cloud release notes of 23 September 2026 carry the standard wording for several of them, that a deprecated version will be removed in 90 days, or at the end of support if that comes sooner. So even inside a channel, sitting on one exact patch version is a temporary state with a 90-day clock on it.

The clock that decides everything: standard, then extended support

GKE's versioning and support page frames support per minor version, counted from the day the version becomes available in the Regular channel. There is around 14 months of standard support, during which the version receives new features, security fixes and bug fixes. After that the version enters extended support, which adds roughly 10 more months of security patches and is available to clusters enrolled in the Extended channel. Up to about 24 months in total. Checked 30 September 2026.

The sentence we read out loud to clients is the one at the end of that lifecycle: at the end of extended support, GKE upgrades clusters still running the now-unsupported minor version regardless of blocking issues. The upgrade is not the optional part. Only the timing is.

What version your clusters are on today

Before touching a setting, take the inventory. One command per project:

gcloud container clusters list \
  --format="table(name, location, currentMasterVersion, releaseChannel.channel)"

An empty channel column means the cluster is on No channel, the configuration that Google's release channel documentation says is deprecated and will be removed on 14 June 2027, after which GKE enrols the remaining clusters in the Stable channel (checked 30 September 2026). We covered that deadline and the setup it forces in our post on the June 2027 release channel deadline. For today the relevant part is narrower: a cluster outside a channel can only use the blunt version of the controls below.

Then read the current upgrade policy on each cluster:

gcloud container clusters describe CLUSTER_NAME \
  --location=LOCATION \
  --format="value(maintenancePolicy)"

Empty output is common, and it is the finding. No maintenance window means GKE may start an automatic upgrade at whatever hour it chooses.

Maintenance windows and exclusions: the two settings that decide when

A maintenance window is a recurring block of time that GKE is allowed to use. Outside it, GKE does not start an automatic upgrade. That is the setting that moves an upgrade off Tuesday lunchtime permanently, and it takes minutes to configure with gcloud container clusters update or in the cluster's settings in the console.

A maintenance exclusion is the other half: a one-off date range in which you want nothing to happen, such as a launch week or a year-end freeze. Exclusions have scopes, and which scope you can use depends on whether the cluster is enrolled in a channel:

  • No upgrades blocks everything, control plane and nodes. For a cluster outside a channel this is the only scope available, and it is capped at 30 days. For a cluster in a channel the documentation allows up to 90 days and advises keeping it under 30.
  • No minor upgrades lets patches and node upgrades through while holding the minor version. Channel only.
  • No minor or node upgrades holds both, and allows patches. Channel only.

The two narrower scopes can be set to run until the end of support for the cluster's minor version, and can be configured to track that date instead of one you type, so nobody has to remember to renew them. A cluster can hold up to 20 exclusions. Read the current limits on the maintenance exclusions page before you plan a long freeze.

One warning we give every client: blocking minor and node upgrades does not remove the work, it moves the work to you. Google's own wording is that if you use that scope you must perform those upgrades yourself, or GKE will upgrade the cluster at the end of support for the minor version. A freeze with no upgrade plan behind it is a deferred outage with a date on it.

gcloud container clusters update CLUSTER_NAME \
  --location=LOCATION \
  --add-maintenance-exclusion-name=year-end-freeze \
  --add-maintenance-exclusion-start=2026-12-15T00:00:00 \
  --add-maintenance-exclusion-end=2027-01-05T23:59:59 \
  --add-maintenance-exclusion-scope=no_upgrades

Moving between channels without a surprise upgrade

Changing the channel itself is one flag:

gcloud container clusters update CLUSTER_NAME \
  --location=LOCATION \
  --release-channel=regular

The flag is easy. The direction is where teams get hurt. Moving toward a faster channel can put the cluster in line for a version nobody has tested it against, because the destination channel's auto-upgrade target may already be ahead of where the cluster sits today. Moving toward a slower channel is the safer direction, and it does not roll a cluster backwards, since GKE does not downgrade a cluster to match a channel. So read the schedule table for the destination channel first and find where your current minor version sits in it. If the destination's auto-upgrade target is two minor versions ahead of you, what you have is a migration, not a setting change.

Our order on client projects is always the same: set the maintenance window first, then change the channel. Done that way, the first upgrade after the switch lands inside a window somebody chose.

What we set up on a client cluster first

  1. Inventory every cluster in every project, with version and channel, in one table a non-engineer can read.
  2. Write down each cluster's end of standard support date from the versioning page, so "we are fine" becomes a date.
  3. Set a maintenance window on the real quiet hours of the business, in the business's timezone, not the cluster region's.
  4. Choose the channel per workload rather than per company: Rapid for a staging cluster, where a broken upgrade is useful information, Regular or Stable for anything a customer touches.
  5. Qualify the next minor version in a pre-production cluster before the production auto-upgrade date, not after it.
  6. Add PodDisruptionBudgets and enough surge capacity that a node upgrade can drain cleanly, because a well-chosen window only helps if the workload survives being moved.
  7. Route upgrade notifications somewhere a person reads, and put the next two auto-upgrade dates on the operations calendar.

Cost and risk notes

Windows, exclusions and channel changes cost nothing. Three things around them do. Extended support is billed differently from standard support, so if you are considering the Extended channel in order to hold a version longer, check the current GKE pricing page on the day you decide: that is a figure we verify per client rather than quote from a blog post. Surge upgrades add nodes for the length of the upgrade, which is a small and short bill. And qualifying a version in a pre-production cluster costs a few days of one cluster, the cheapest line here next to a failed production upgrade.

The risk that bites in practice is quieter than an outage. It is a cluster drifting to within weeks of end of support while everyone assumes upgrades are somebody else's schedule. No notification makes that safe. A date in a shared calendar does.

How Guanacos Tech helps

We run this as a fixed piece of work: the cluster inventory, the support dates, the maintenance windows, the channel decision per workload, one qualification run in pre-production, and a one page runbook so the next upgrade is a calendar entry rather than an incident. We are an independent consultancy and our engineers hold Google certifications, so you get the reasoning behind each setting along with the setting.

If you have a cluster nobody has logged into for a year, that is the normal starting point and not an embarrassing one. See what we do in Google Cloud consulting for small teams. A 30 minute call is enough to tell you the date your cluster is heading for and whether it needs moving.

Sources

Next step

Would you rather we did this for you?

Thirty minutes on Google Meet, free. We look at your domain or project with you, tell you what is wrong and what we would do first. If you can fix it yourself, we say so.

Book a 30-minute call or read about our Google Cloud consulting

Frequently asked questions

How do I find out when my GKE cluster will upgrade next?

Get the cluster's minor version and channel, then find that row on the GKE release schedule page, which lists the auto-upgrade date for each channel. Google notes those dates are best-effort predictions and can be delayed, so plan around a window rather than a single day.

Can I stop GKE from upgrading my cluster?

Not permanently. A maintenance window moves upgrades to hours you choose and a maintenance exclusion pauses them for a set range, but a minor version reaches end of support and GKE then upgrades the cluster regardless of blocking issues. The realistic goal is controlling when, not whether.

Which release channel should a small team use?

Regular or Stable for anything customers touch, and Rapid only where a broken upgrade is useful information, such as a staging cluster. Extended exists to hold a minor version longer, and extended support is billed differently from standard support, so check the current GKE pricing page before choosing it.