Document the changes of scheduler PostFilter extension point
This commit is contained in:
@@ -65,24 +65,20 @@ PriorityClasses have the option to set `preemptionPolicy: Never`.
|
|||||||
This will prevent pods of that PriorityClass from preempting other pods.
|
This will prevent pods of that PriorityClass from preempting other pods.
|
||||||
{{< /note >}}
|
{{< /note >}}
|
||||||
|
|
||||||
Preemption is controlled by a kube-scheduler flag `disablePreemption`, which is
|
Starting from Kubernetes 1.19, Preemption is controlled by a kube-scheduler
|
||||||
set to `false` by default.
|
plugin: `DefaultPreemption`, which is enabled by default.
|
||||||
If you want to disable preemption despite the above note, you can set
|
If you want to disable preemption despite the above note, below is a sample
|
||||||
`disablePreemption` to `true`.
|
component config:
|
||||||
|
|
||||||
This option is available in component configs only and is not available in
|
|
||||||
old-style command line options. Below is a sample component config to disable
|
|
||||||
preemption:
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: kubescheduler.config.k8s.io/v1alpha1
|
apiVersion: kubescheduler.config.k8s.io/v1beta1
|
||||||
kind: KubeSchedulerConfiguration
|
kind: KubeSchedulerConfiguration
|
||||||
algorithmSource:
|
profiles:
|
||||||
provider: DefaultProvider
|
- schedulerName: default-scheduler
|
||||||
|
plugins:
|
||||||
...
|
postFilter:
|
||||||
|
disabled:
|
||||||
disablePreemption: true
|
- name: DefaultPreemption
|
||||||
```
|
```
|
||||||
|
|
||||||
## PriorityClass
|
## PriorityClass
|
||||||
|
|||||||
@@ -75,6 +75,14 @@ node, the scheduler will call filter plugins in their configured order. If any
|
|||||||
filter plugin marks the node as infeasible, the remaining plugins will not be
|
filter plugin marks the node as infeasible, the remaining plugins will not be
|
||||||
called for that node. Nodes may be evaluated concurrently.
|
called for that node. Nodes may be evaluated concurrently.
|
||||||
|
|
||||||
|
### PostFilter {#post-filter}
|
||||||
|
|
||||||
|
These plugins are called after Filter phase, but only when there is no feasible
|
||||||
|
node. Each plugin is called by their configured order. If any postFilter plugin
|
||||||
|
marks the node as `Schedulable`, the remaining plugins will not be called.
|
||||||
|
A typical PostFilter implementation is preemption, which tries to make the pod
|
||||||
|
schedulable by preempting other Pods.
|
||||||
|
|
||||||
### PreScore {#pre-score}
|
### PreScore {#pre-score}
|
||||||
|
|
||||||
These plugins are used to perform "pre-scoring" work, which generates a sharable
|
These plugins are used to perform "pre-scoring" work, which generates a sharable
|
||||||
|
|||||||
@@ -158,6 +158,8 @@ extension points:
|
|||||||
Extension points: `QueueSort`.
|
Extension points: `QueueSort`.
|
||||||
- `DefaultBinder`: Provides the default binding mechanism.
|
- `DefaultBinder`: Provides the default binding mechanism.
|
||||||
Extension points: `Bind`.
|
Extension points: `Bind`.
|
||||||
|
- `DefaultPreemption`: Provides the default preemption mechanism.
|
||||||
|
Extension points: `PostFilter`.
|
||||||
|
|
||||||
You can also enable the following plugins, through the component config APIs,
|
You can also enable the following plugins, through the component config APIs,
|
||||||
that are not enabled by default:
|
that are not enabled by default:
|
||||||
@@ -199,7 +201,7 @@ profiles:
|
|||||||
- schedulerName: default-scheduler
|
- schedulerName: default-scheduler
|
||||||
- schedulerName: no-scoring-scheduler
|
- schedulerName: no-scoring-scheduler
|
||||||
plugins:
|
plugins:
|
||||||
prescore:
|
preScore:
|
||||||
disabled:
|
disabled:
|
||||||
- name: '*'
|
- name: '*'
|
||||||
score:
|
score:
|
||||||
@@ -245,6 +247,8 @@ beware of the following changes, if applicable:
|
|||||||
- `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`.
|
- `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`.
|
||||||
- `Unreserve` extension point is removed from Profile definition. All `Reserve`
|
- `Unreserve` extension point is removed from Profile definition. All `Reserve`
|
||||||
plugins implement an `Unreserve` call.
|
plugins implement an `Unreserve` call.
|
||||||
|
- `.disablePreemption` was removed. Users can disable preemption by disabling the
|
||||||
|
"DefaultPreemption" PostFilter plugin.
|
||||||
|
|
||||||
## {{% heading "whatsnext" %}}
|
## {{% heading "whatsnext" %}}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 59 KiB |
Reference in New Issue
Block a user