<p>I would like to migrate an application from one GKE cluster to another, and I'm wondering how to accomplish this while avoiding any downtime for this process.</p>
<p>The application is an HTTP web backend.</p>
<p>Usually how I'd usually handle this in a non GCP/K8S context is have a load balancer in front of the application, setup a new web backend and then just update the appropriate IP address in the load balancer to point from the old IP to the new IP. This would essentially have 0 downtime while also allowing for a seemless rollback if anything goes wrong.</p>
<p>I do not see why this should not work for this context as well however I'm not 100% sure. And if there is a more robust or alternative way to do this (GCP/GKE friendly way), I'd like to investigate that.</p>
<p><strong>So to summarize my question,</strong> does GCP/GKE support this type of migration functionality? If not, is there any implications I need to be aware of with my usual load balancer approach mentioned above?</p>
<hr />
<p>The reason for migrating is the current k8s cluster is running quite an old version (1.18)  and if doing an GKE version upgrade to something more recent like 1.22, I suspect a lot of incompatibilities as well risk.</p>

<p>I see 2 approaches:</p>
<ol>
<li>In the new cluster get a new IP address and update the DNS record to point to the new load balancer</li>
<li>See if you can switch to Multi-cluster gateways, however that would probably require you to use approach 1 to switch to multi-cluster gateways as well: <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/deploying-multi-cluster-gateways" rel="nofollow noreferrer">https://cloud.google.com/kubernetes-engine/docs/how-to/deploying-multi-cluster-gateways</a></li>
</ol>
