code: func (g *Cloud) ensureInternalInstanceGroups(name string, nodes []*v1.Node) ([]string, error) {
  	zonedNodes := splitNodesByZone(nodes)
  	klog.V(2).Infof("ensureInternalInstanceGroups(%v): %d nodes over %d zones in region %v", name, len(nodes), len(zonedNodes), g.region)
  	var igLinks []string
  	for zone, nodes := range zonedNodes {
  		igLink, err := g.ensureInternalInstanceGroup(name, zone, nodes)
  		if err != nil {
  			return []string{}, err
  		}
  		igLinks = append(igLinks, igLink)
  	}
  
  	return igLinks, nil
  }
docs: // ensureInternalInstanceGroups generates an unmanaged instance group for every zone
  // where a K8s node exists. It also ensures that each node belongs to an instance group