code: func (g *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service, nodes []*v1.Node) error {
  	loadBalancerName := g.GetLoadBalancerName(ctx, clusterName, svc)
  	scheme := getSvcScheme(svc)
  	clusterID, err := g.ClusterID.GetID()
  	if err != nil {
  		return err
  	}
  
  	klog.V(4).Infof("UpdateLoadBalancer(%v, %v, %v, %v, %v): updating with %d nodes", clusterName, svc.Namespace, svc.Name, loadBalancerName, g.region, len(nodes))
  
  	switch scheme {
  	case cloud.SchemeInternal:
  		err = g.updateInternalLoadBalancer(clusterName, clusterID, svc, nodes)
  	default:
  		err = g.updateExternalLoadBalancer(clusterName, svc, nodes)
  	}
  	klog.V(4).Infof("UpdateLoadBalancer(%v, %v, %v, %v, %v): done updating. err: %v", clusterName, svc.Namespace, svc.Name, loadBalancerName, g.region, err)
  	return err
  }
docs: // UpdateLoadBalancer is an implementation of LoadBalancer.UpdateLoadBalancer.