code: func (r *EvictionREST) getPodDisruptionBudgets(ctx context.Context, pod *api.Pod) ([]policyv1beta1.PodDisruptionBudget, error) {
  	if len(pod.Labels) == 0 {
  		return nil, nil
  	}
  
  	pdbList, err := r.podDisruptionBudgetClient.PodDisruptionBudgets(pod.Namespace).List(metav1.ListOptions{})
  	if err != nil {
  		return nil, err
  	}
  
  	var pdbs []policyv1beta1.PodDisruptionBudget
  	for _, pdb := range pdbList.Items {
  		if pdb.Namespace != pod.Namespace {
  			continue
  		}
  		selector, err := metav1.LabelSelectorAsSelector(pdb.Spec.Selector)
  		if err != nil {
  			continue
  		}
  		// If a PDB with a nil or empty selector creeps in, it should match nothing, not everything.
  		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {
  			continue
  		}
  
  		pdbs = append(pdbs, pdb)
  	}
  
  	return pdbs, nil
  }
docs: // getPodDisruptionBudgets returns any PDBs that match the pod or err if there's an error.