Skip to content

Commit 5126f13

Browse files
committed
address the review
1 parent 0190eeb commit 5126f13

File tree

1 file changed

+31
-26
lines changed

1 file changed

+31
-26
lines changed

content/en/docs/concepts/scheduling-eviction/scheduling-framework.md

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,18 @@ A scheduling or binding cycle can be aborted if the Pod is determined to
4343
be unschedulable or if there is an internal error. The Pod will be returned to
4444
the queue and retried.
4545

46-
## Extension points
46+
## Interfaces
4747

48-
The following picture shows the scheduling context of a Pod and the extension
49-
points that the scheduling framework exposes. In this picture "Filter" is
48+
The following picture shows the scheduling context of a Pod and the interfaces
49+
that the scheduling framework exposes. In this picture "Filter" is
5050
equivalent to "Predicate" and "Scoring" is equivalent to "Priority function".
5151

52-
One plugin may register at multiple extension points to perform more complex or
52+
One plugin may implement multiple interfaces to perform more complex or
5353
stateful tasks.
5454

55+
Some interfaces are called as extension points which can be controled through
56+
[Scheduler Configuration](/docs/reference/scheduling/config/#extension-points).
57+
5558
{{< figure src="/images/docs/scheduling-framework-extensions.png" title="Scheduling framework extension points" class="diagram-large">}}
5659

5760
### PreEnqueue {#pre-enqueue}
@@ -65,6 +68,28 @@ Otherwise, it's placed in the internal unschedulable Pods list, and doesn't get
6568
For more details about how internal scheduler queues work, read
6669
[Scheduling queue in kube-scheduler](https://github.com/kubernetes/community/blob/f03b6d5692bd979f07dd472e7b6836b2dad0fd9b/contributors/devel/sig-scheduling/scheduler_queues.md).
6770

71+
### EnqueueExtension
72+
73+
EnqueueExtension is the interface where the plugin can control
74+
whether to retry scheduling of Pods rejected by this plugin, based on changes in the cluster.
75+
Plugins that implement PreEnqueue, PreFilter, Filter, Reserve or Permit should implement this interface.
76+
77+
#### QueueingHint
78+
79+
{{< feature-state for_k8s_version="v1.28" state="beta" >}}
80+
81+
QueueingHint is a callback function for deciding whether a Pod can be requeued to the active queue or backoff queue.
82+
It's executed every time a certain kind of events happen,
83+
and when the QueueingHint finds that the event might make the Pod schedulable,
84+
the Pod is put into the active queue or the backoff queue
85+
so that the scheduler will retry the scheduling of the Pod.
86+
87+
{{< note >}}
88+
QueueingHint is a beta-level field and is enabled by default in 1.28.
89+
You can disable it via the
90+
`SchedulerQueueingHints` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/).
91+
{{< /note >}}
92+
6893
### QueueSort {#queue-sort}
6994

7095
These plugins are used to sort Pods in the scheduling queue. A queue sort plugin
@@ -148,7 +173,7 @@ NormalizeScore extension point.
148173

149174
### Reserve {#reserve}
150175

151-
A plugin that implements the Reserve extension has two methods, namely `Reserve`
176+
A plugin that implements the Reserve interface has two methods, namely `Reserve`
152177
and `Unreserve`, that back two informational scheduling phases called Reserve
153178
and Unreserve, respectively. Plugins which maintain runtime state (aka "stateful
154179
plugins") should use these phases to be notified by the scheduler when resources
@@ -218,30 +243,10 @@ skipped**.
218243

219244
### PostBind {#post-bind}
220245

221-
This is an informational extension point. Post-bind plugins are called after a
246+
This is an informational interface. Post-bind plugins are called after a
222247
Pod is successfully bound. This is the end of a binding cycle, and can be used
223248
to clean up associated resources.
224249

225-
### EnqueueExtension
226-
227-
EnqueueExtension is the interface where the plugin can have control how the scheduling of Pods rejected by this plugin are retried.
228-
PreEnqueue, PreFilter, Filter, Reserve and Permit plugins are supposed to implement this interface.
229-
230-
{{< feature-state for_k8s_version="v1.28" state="beta" >}}
231-
232-
QueueingHint is a part of EnqueueExtension.
233-
It's a callback function for deciding whether a Pod can be requeued to the active queue or backoff queue.
234-
It's executed every time a certain kind of events happen,
235-
and when the QueueingHint finds that the event might make the Pod schedulable,
236-
the Pod is put into the active queue or the backoff queue
237-
so that the scheduler will retry the scheduling of the Pod.
238-
239-
{{< note >}}
240-
QueueingHint is a beta-level field and is enabled by default in 1.28.
241-
You can disable it via the
242-
`SchedulerQueueingHints` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/).
243-
{{< /note >}}
244-
245250
## Plugin API
246251

247252
There are two steps to the plugin API. First, plugins must register and get

0 commit comments

Comments
 (0)