code: func NewVolumeZonePredicate(pvInfo PersistentVolumeInfo, pvcInfo PersistentVolumeClaimInfo, classInfo StorageClassInfo) FitPredicate {
  	c := &VolumeZoneChecker{
  		pvInfo:    pvInfo,
  		pvcInfo:   pvcInfo,
  		classInfo: classInfo,
  	}
  	return c.predicate
  }
docs: // NewVolumeZonePredicate evaluates if a pod can fit due to the volumes it requests, given
  // that some volumes may have zone scheduling constraints.  The requirement is that any
  // volume zone-labels must match the equivalent zone-labels on the node.  It is OK for
  // the node to have more zone-label constraints (for example, a hypothetical replicated
  // volume might allow region-wide access)
  //
  // Currently this is only supported with PersistentVolumeClaims, and looks to the labels
  // only on the bound PersistentVolume.
  //
  // Working with volumes declared inline in the pod specification (i.e. not
  // using a PersistentVolume) is likely to be harder, as it would require
  // determining the zone of a volume during scheduling, and that is likely to
  // require calling out to the cloud provider.  It seems that we are moving away
  // from inline volume declarations anyway.