defaultpreemption

package
v1.21.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: Apache-2.0 Imports: 27 Imported by: 10

Documentation

Index

Constants

View Source
const (
	// Name of the plugin used in the plugin registry and configurations.
	Name = "DefaultPreemption"
)

Variables

This section is empty.

Functions

func New

func New(dpArgs runtime.Object, fh framework.Handle) (framework.Plugin, error)

New initializes a new plugin and returns it.

func PodEligibleToPreemptOthers

func PodEligibleToPreemptOthers(pod *v1.Pod, nodeInfos framework.NodeInfoLister, nominatedNodeStatus *framework.Status) bool

PodEligibleToPreemptOthers determines whether this pod should be considered for preempting other pods or not. If this pod has already preempted other pods and those are in their graceful termination period, it shouldn't be considered for preemption. We look at the node that is nominated for this pod and as long as there are terminating pods on the node, we don't consider this for preempting more pods.

func PrepareCandidate

func PrepareCandidate(c Candidate, fh framework.Handle, cs kubernetes.Interface, pod *v1.Pod, pluginName string) *framework.Status

PrepareCandidate does some preparation work before nominating the selected candidate: - Evict the victim pods - Reject the victim pods if they are in waitingPod map - Clear the low-priority pods' nominatedNodeName status if needed

Types

type Candidate

type Candidate interface {
	// Victims wraps a list of to-be-preempted Pods and the number of PDB violation.
	Victims() *extenderv1.Victims
	// Name returns the target node name where the preemptor gets nominated to run.
	Name() string
}

Candidate represents a nominated node on which the preemptor can be scheduled, along with the list of victims that should be evicted for the preemptor to fit the node.

func CallExtenders

func CallExtenders(extenders []framework.Extender, pod *v1.Pod, nodeLister framework.NodeInfoLister,
	candidates []Candidate) ([]Candidate, *framework.Status)

CallExtenders calls given <extenders> to select the list of feasible candidates. We will only check <candidates> with extenders that support preemption. Extenders which do not support preemption may later prevent preemptor from being scheduled on the nominated node. In that case, scheduler will find a different host for the preemptor in subsequent scheduling cycles.

func SelectCandidate

func SelectCandidate(candidates []Candidate) Candidate

SelectCandidate chooses the best-fit candidate from given <candidates> and return it.

type DefaultPreemption

type DefaultPreemption struct {
	// contains filtered or unexported fields
}

DefaultPreemption is a PostFilter plugin implements the preemption logic.

func (*DefaultPreemption) FindCandidates added in v1.20.0

FindCandidates calculates a slice of preemption candidates. Each candidate is executable to make the given <pod> schedulable.

func (*DefaultPreemption) Name

func (pl *DefaultPreemption) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*DefaultPreemption) PostFilter

PostFilter invoked at the postFilter extension point.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL