<p>When I have a multi zone GKE cluster, the num-nodes run in each zone for my node pools.</p>

<p>GKE uses <em>zonal</em> instance groups, one in each zone for my cluster's zones.</p>

<p>It seems like this could be implemented with a <em>regional</em> instance group instead.</p>

<p>It seems that GKE Node Pools and Regional instance groups are a similar age. Is the only reason node pools don't use regional instance groups simply it wasn't available as a GCE feature at the time?</p>

<p>As the other comment says this questions is not really suitable for Stack Overflow. It's an implementation detail of GKE –and not an important one to a user in practice.</p>

<p>I work at Google (but I don't know the implementation details), but my guess would be because GKE needs to choose which 3 zones in a region it needs to use.</p>

<p>For example, if user node pool is in <code>-a</code>, <code>-b</code>, <code>-d</code> zones, Google (internally) also needs to create GKE Master instances (not visible to users) in the same set of zones and probably the way to coordinate this is to explicitly describe which zones to use by creating separate "zonal node pools".</p>

<p>But I might be wrong. :) In the end, you should not really care how it's implemented. You should not go make edits to managed instance groups created by GKE either. Maybe some day GKE will move on to "regional instance groups", too.</p>
