Introduce a defaultpreemption PostFilter plugin

- Add a defaultpreemption PostFilter plugin
- Make g.Preempt() stateless
    - make g.Preempt() stateless
    - make g.getLowerPriorityNominatedPods() stateless
    - make g.processPreemptionWithExtenders() stateless
This commit is contained in:
Wei Huang
2020-06-17 14:15:14 -07:00
parent 1faf097f3f
commit 196056d7fe
12 changed files with 134 additions and 80 deletions

View File

@@ -30,6 +30,7 @@ import (
coreinformers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/kubernetes/pkg/features"
kubefeatures "k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
"k8s.io/kubernetes/pkg/scheduler/profile"
)
@@ -466,6 +467,11 @@ func addAllEventHandlers(
AddFunc: sched.onStorageClassAdd,
},
)
// TODO(Huang-Wei): remove this hack when defaultpreemption plugin is enabled.
if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.PodDisruptionBudget) {
informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister()
}
}
func nodeSchedulingPropertiesChange(newNode *v1.Node, oldNode *v1.Node) string {