mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-18 16:21:13 +00:00
Merge pull request #121950 from sanposhiho/doc-postfilter
fix(framework): elaborate the document on PostFilter
This commit is contained in:
commit
56d0da546a
@ -95,12 +95,13 @@ const (
|
|||||||
Unschedulable
|
Unschedulable
|
||||||
// UnschedulableAndUnresolvable is used when a plugin finds a pod unschedulable and
|
// UnschedulableAndUnresolvable is used when a plugin finds a pod unschedulable and
|
||||||
// other postFilter plugins like preemption would not change anything.
|
// other postFilter plugins like preemption would not change anything.
|
||||||
|
// See the comment on PostFilter interface for more details about how PostFilter should handle this status.
|
||||||
// Plugins should return Unschedulable if it is possible that the pod can get scheduled
|
// Plugins should return Unschedulable if it is possible that the pod can get scheduled
|
||||||
// after running other postFilter plugins.
|
// after running other postFilter plugins.
|
||||||
// The accompanying status message should explain why the pod is unschedulable.
|
// The accompanying status message should explain why the pod is unschedulable.
|
||||||
//
|
//
|
||||||
// We regard the backoff as a penalty of wasting the scheduling cycle.
|
// We regard the backoff as a penalty of wasting the scheduling cycle.
|
||||||
// When the scheduling queue requeues Pods, which was rejected with Unschedulable in the last scheduling,
|
// When the scheduling queue requeues Pods, which was rejected with UnschedulableAndUnresolvable in the last scheduling,
|
||||||
// the Pod goes through backoff.
|
// the Pod goes through backoff.
|
||||||
UnschedulableAndUnresolvable
|
UnschedulableAndUnresolvable
|
||||||
// Wait is used when a Permit plugin finds a pod scheduling should wait.
|
// Wait is used when a Permit plugin finds a pod scheduling should wait.
|
||||||
@ -438,7 +439,17 @@ type FilterPlugin interface {
|
|||||||
// after a pod cannot be scheduled.
|
// after a pod cannot be scheduled.
|
||||||
type PostFilterPlugin interface {
|
type PostFilterPlugin interface {
|
||||||
Plugin
|
Plugin
|
||||||
// PostFilter is called by the scheduling framework.
|
// PostFilter is called by the scheduling framework
|
||||||
|
// when the scheduling cycle failed at PreFilter or Filter by Unschedulable or UnschedulableAndUnresolvable.
|
||||||
|
// NodeToStatusMap has statuses that each Node got in the Filter phase.
|
||||||
|
// If this scheduling cycle failed at PreFilter, all Nodes have the status from the rejector PreFilter plugin in NodeToStatusMap.
|
||||||
|
// Note that the scheduling framework runs PostFilter plugins even when PreFilter returned UnschedulableAndUnresolvable.
|
||||||
|
// In that case, NodeToStatusMap contains all Nodes with UnschedulableAndUnresolvable.
|
||||||
|
//
|
||||||
|
// Also, ignoring Nodes with UnschedulableAndUnresolvable is the responsibility of each PostFilter plugin,
|
||||||
|
// meaning NodeToStatusMap obviously could have Nodes with UnschedulableAndUnresolvable
|
||||||
|
// and the scheduling framework does call PostFilter even when all Nodes in NodeToStatusMap are UnschedulableAndUnresolvable.
|
||||||
|
//
|
||||||
// A PostFilter plugin should return one of the following statuses:
|
// A PostFilter plugin should return one of the following statuses:
|
||||||
// - Unschedulable: the plugin gets executed successfully but the pod cannot be made schedulable.
|
// - Unschedulable: the plugin gets executed successfully but the pod cannot be made schedulable.
|
||||||
// - Success: the plugin gets executed successfully and the pod can be made schedulable.
|
// - Success: the plugin gets executed successfully and the pod can be made schedulable.
|
||||||
|
Loading…
Reference in New Issue
Block a user