We use managed Kubernetes cluster (GKE) and wonder how often the Kubernetes cluster should be upgraded. We use release channels: regular (dev/test), stable (staging), stable (production). Different major versions are often available at the same time on the channel. Shall we upgrade our clusters to the highest major version or delay the upgrade as much as possible?
According to the comment of gapsf:
Both - upgrade and delay
You should test the newest available version and delay the upgrade until the release proves to be stable, bug free and is safe for your cluster to use it.
You can test a newly available GKE version prior to upgrading your production environment. For example, you can subscribe to upgrade notifications to be informed of newly available versions, and then proactively upgrade a pre-production environment to the new version before it becomes the default version.
If you need to keep a cluster on a specific version, for example to validate or test newer versions prior to upgrading, we recommend using maintenance exclusions.
For versions 1.19 and later, after a version has been made available in a release channel, it will remain available in that release channel for new or existing clusters until it reaches its end of life date.
In this document, you will finds the best practices recommended by Google for Release Channels.