You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Optimize for network-attached resources](#optimize-for-network-attached-resources)
157
+
-[Moving blocking API calls into goroutines](#moving-blocking-api-calls-into-goroutines)
158
+
-[RPC calls instead of <code>PodSchedulingContext</code>](#rpc-calls-instead-of-)
152
159
-[Infrastructure Needed](#infrastructure-needed)
153
160
<!-- /toc -->
154
161
@@ -735,7 +742,7 @@ For a resource driver the following components are needed:
735
742
-*Resource kubelet plugin*: a component which cooperates with kubelet to prepare
736
743
the usage of the resource on a node.
737
744
738
-
An[utility library](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/dynamic-resource-allocation) for resource drivers was developed.
745
+
A[utility library](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/dynamic-resource-allocation) for resource drivers was developed.
739
746
It does not have to be used by drivers, therefore it is not described further
740
747
in this KEP.
741
748
@@ -1825,7 +1832,35 @@ notices this, the current scheduling attempt for the pod must stop and the pod
1825
1832
needs to be put back into the work queue. It then gets retried whenever a
1826
1833
ResourceClaim gets added or modified.
1827
1834
1828
-
The following extension points are implemented in the new claim plugin:
1835
+
The following extension points are implemented in the new claim plugin. Some of
1836
+
them invoke API calls to create or update objects. This is done to simplify
1837
+
error handling: a failure during such a call puts the pod into the backoff
1838
+
queue where it will be retried after a timeout. The downside is that the
1839
+
latency caused by those blocking calls not only affects pods using claims, but
1840
+
also all other pending pods because the scheduler only schedules one pod at a
1841
+
time.
1842
+
1843
+
#### EventsToRegister
1844
+
1845
+
This registers all cluster events that might make an unschedulable pod
1846
+
schedulable, like creating a claim that the pod needs or finishing the
1847
+
allocation of a claim.
1848
+
1849
+
[Queuing hints](https://github.com/kubernetes/enhancements/issues/4247) are
1850
+
supported. These are callbacks that can limit the effect of a cluster event to
1851
+
specific pods. For example, allocating a claim only makes those pods
1852
+
scheduleable which reference the claim. There is no need to try scheduling a pod
1853
+
which waits for some other claim. Hints are also used to trigger the next
1854
+
scheduling cycle for a pod immediately when some expected and require event
1855
+
like "drivers have provided information" occurs, instead of forcing the pod to
1856
+
go through the backoff queue and the usually 5 second long delay associated
1857
+
with that.
1858
+
1859
+
#### PreEnqueue
1860
+
1861
+
This checks whether all claims referenced by a pod exist. If they don't,
1862
+
scheduling the pod has to wait until the kube-controller-manager or user create
0 commit comments