code: func (gcc *PodGCController) gcOrphaned(pods []*v1.Pod) {
  	klog.V(4).Infof("GC'ing orphaned")
  	// We want to get list of Nodes from the etcd, to make sure that it's as fresh as possible.
  	nodes, err := gcc.kubeClient.CoreV1().Nodes().List(metav1.ListOptions{})
  	if err != nil {
  		return
  	}
  	nodeNames := sets.NewString()
  	for i := range nodes.Items {
  		nodeNames.Insert(nodes.Items[i].Name)
  	}
  
  	for _, pod := range pods {
  		if pod.Spec.NodeName == "" {
  			continue
  		}
  		if nodeNames.Has(pod.Spec.NodeName) {
  			continue
  		}
  		klog.V(2).Infof("Found orphaned Pod %v/%v assigned to the Node %v. Deleting.", pod.Namespace, pod.Name, pod.Spec.NodeName)
  		if err := gcc.deletePod(pod.Namespace, pod.Name); err != nil {
  			utilruntime.HandleError(err)
  		} else {
  			klog.V(0).Infof("Forced deletion of orphaned Pod %v/%v succeeded", pod.Namespace, pod.Name)
  		}
  	}
  }
docs: // gcOrphaned deletes pods that are bound to nodes that don't exist.