<p>Seems like every week the GKE cluster gets restarted. Is there anything I could do to prevent that from happening? It does migrate pods to other node while it does maintenance on one of the node. But I'm not sure if there is downtime during migration and also sometimes the pods gets stuck in crash <code>crashloopbackoff</code> or <code>errimagepull</code> state.</p>
<p>How does the migration happen while maintenance? Does it create a new pod and then route the traffic and then delete the old pod when the total number of replica is just one? Just wanted to know if there is downtime. Its a new cluster and monitoring hasn't been setup so don't know if players are experiencing downtime during maintenance.</p>
<p>Is there a way to prevent GCP from doing maintenance? I used terraform to create the cluster so if I could prevent it I need to do it via terraform since GKE nodes can't be edited using GCP console.</p>

user630702
<p>You can <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions" rel="nofollow noreferrer">configure your maintenance windows</a> and enable/disable automatic node upgrades.</p>
<p>Here's an example of the configuration options in the GCP console:</p>
<p><a href="https://i.stack.imgur.com/HkwMV.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/HkwMV.png" alt="enter image description here" /></a></p>
<p>You can also decide on which release channel you want to be (rapid, regular and stable).</p>
<p>Your Kubernetes <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters" rel="nofollow noreferrer">control plane will have downtime if you have a zonal cluster</a>. Only regional clusters replicate the control plane.</p>
<p>In terms of your own applications they should have zero downtime and GKE will automatically create new nodes and divert traffic when pods are ready to receive traffic.</p>
