code: func (s *ServiceAntiAffinity) CalculateAntiAffinityPriorityMap(pod *v1.Pod, meta interface{}, nodeInfo *schedulernodeinfo.NodeInfo) (schedulerapi.HostPriority, error) {
  	var firstServiceSelector labels.Selector
  
  	node := nodeInfo.Node()
  	if node == nil {
  		return schedulerapi.HostPriority{}, fmt.Errorf("node not found")
  	}
  	priorityMeta, ok := meta.(*priorityMetadata)
  	if ok {
  		firstServiceSelector = priorityMeta.podFirstServiceSelector
  	} else {
  		firstServiceSelector = getFirstServiceSelector(pod, s.serviceLister)
  	}
  	//pods matched namespace,selector on current node
  	var selectors []labels.Selector
  	if firstServiceSelector != nil {
  		selectors = append(selectors, firstServiceSelector)
  	}
  	score := countMatchingPods(pod.Namespace, selectors, nodeInfo)
  
  	return schedulerapi.HostPriority{
  		Host:  node.Name,
  		Score: score,
  	}, nil
  }
docs: // CalculateAntiAffinityPriorityMap spreads pods by minimizing the number of pods belonging to the same service
  // on given machine