On this page, we’ve collected several Google Kubernetes Engine (GKE) best practices.
We recommned using Release Channels for all GKE clusters. Using Release Channels has several advantages:
No minor upgrades
and No minor or node upgrades
scope of maintenance exclusions - in other words, enrolling a cluster in a Release Channel gives you more control over node upgrades.rapid
channel have access to the newest Kubernetes version first. Code Blind strives to support the newest release in rapid
channel to allow you to test the newest Kubernetes soon after it’s available in GKE.We recommend the regular
channel, which offers a balance between stability and freshness. See this guide for more discussion.
If you need to disallow minor version upgrades for more than 6 months, consider choosing the freshest Kubernetes version possible: Choosing the freshest version on rapid
or regular
will extend the amount of time before your cluster reaches end of life.
You can query the versions available across different channels using gcloud
:
gcloud container get-server-config \
--region=[COMPUTE_REGION] \
--flatten="channels" \
--format="yaml(channels)"
Replace the following:
If your game session length is less than an hour, use the eviction
API to configure your game servers appropriately - see Controlling Disruption.
For sessions longer than an hour, there are currently two possible approaches to manage disruption:
(GKE Standard/Autopilot) Blue/green deployment at the cluster level: If you are using an automated deployment process, you can:
green
cluster within a release channel e.g. every week,Fleet
on the old, blue
cluster down to 0, andgreen
cluster (since blue
has 0 desired), thenblue
cluster when the Fleet
successfully scales down.(GKE Standard only) Use node pool blue/green upgrades
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.