@@ -71,25 +71,25 @@ type InTreeToCSITranslator interface {
71
71
TranslateInTreePVToCSI (pv * v1.PersistentVolume ) (* v1.PersistentVolume , error )
72
72
}
73
73
74
- // SchedulerVolumeBinder is used by the scheduler to handle PVC/PV binding
75
- // and dynamic provisioning. The binding decisions are integrated into the pod scheduling
76
- // workflow so that the PV NodeAffinity is also considered along with the pod's other
77
- // scheduling requirements.
74
+ // SchedulerVolumeBinder is used by the scheduler VolumeBinding plugin to
75
+ // handle PVC/PV binding and dynamic provisioning. The binding decisions are
76
+ // integrated into the pod scheduling workflow so that the PV NodeAffinity is
77
+ // also considered along with the pod's other scheduling requirements.
78
78
//
79
- // This integrates into the existing default scheduler workflow as follows:
79
+ // This integrates into the existing scheduler workflow as follows:
80
80
// 1. The scheduler takes a Pod off the scheduler queue and processes it serially:
81
- // a. Invokes all predicate functions , parallelized across nodes. FindPodVolumes() is invoked here.
82
- // b. Invokes all priority functions . Future/TBD
81
+ // a. Invokes all filter plugins , parallelized across nodes. FindPodVolumes() is invoked here.
82
+ // b. Invokes all score plugins . Future/TBD
83
83
// c. Selects the best node for the Pod.
84
- // d. Cache the node selection for the Pod . AssumePodVolumes() is invoked here.
84
+ // d. Invokes all reserve plugins . AssumePodVolumes() is invoked here.
85
85
// i. If PVC binding is required, cache in-memory only:
86
86
// * For manual binding: update PV objects for prebinding to the corresponding PVCs.
87
87
// * For dynamic provisioning: update PVC object with a selected node from c)
88
88
// * For the pod, which PVCs and PVs need API updates.
89
89
// ii. Afterwards, the main scheduler caches the Pod->Node binding in the scheduler's pod cache,
90
90
// This is handled in the scheduler and not here.
91
91
// e. Asynchronously bind volumes and pod in a separate goroutine
92
- // i. BindPodVolumes() is called first. It makes all the necessary API updates and waits for
92
+ // i. BindPodVolumes() is called first in PreBind phase . It makes all the necessary API updates and waits for
93
93
// PV controller to fully bind and provision the PVCs. If binding fails, the Pod is sent
94
94
// back through the scheduler.
95
95
// ii. After BindPodVolumes() is complete, then the scheduler does the final Pod->Node binding.
@@ -829,7 +829,7 @@ func (b *volumeBinder) checkVolumeProvisions(pod *v1.Pod, claimsToProvision []*v
829
829
provisionedClaims = append (provisionedClaims , claim )
830
830
831
831
}
832
- klog .V (4 ).Infof ("Provisioning for claims of pod %q that has no matching volumes on node %q ..." , podName , node .Name )
832
+ klog .V (4 ).Infof ("Provisioning for %d claims of pod %q that has no matching volumes on node %q ..." , len ( claimsToProvision ) , podName , node .Name )
833
833
834
834
return true , provisionedClaims , nil
835
835
}
0 commit comments