package defaultpreemption
import "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpreemption"
Index ¶
- Constants
- func New(dpArgs runtime.Object, fh framework.Handle, fts feature.Features) (framework.Plugin, error)
- type DefaultPreemption
- func (pl *DefaultPreemption) CandidatesToVictimsMap(candidates []preemption.Candidate) map[string]*extenderv1.Victims
- func (pl *DefaultPreemption) GetOffsetAndNumCandidates(numNodes int32) (int32, int32)
- func (pl *DefaultPreemption) Name() string
- func (pl *DefaultPreemption) PodEligibleToPreemptOthers(pod *v1.Pod, nominatedNodeStatus *framework.Status) bool
- func (pl *DefaultPreemption) PostFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, m framework.NodeToStatusMap) (*framework.PostFilterResult, *framework.Status)
- func (pl *DefaultPreemption) SelectVictimsOnNode( ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo, pdbs []*policy.PodDisruptionBudget) ([]*v1.Pod, int, *framework.Status)
Constants ¶
const ( // Name of the plugin used in the plugin registry and configurations. Name = names.DefaultPreemption )
Functions ¶
func New ¶
func New(dpArgs runtime.Object, fh framework.Handle, fts feature.Features) (framework.Plugin, error)
New initializes a new plugin and returns it.
Types ¶
type DefaultPreemption ¶
type DefaultPreemption struct {
// contains filtered or unexported fields
}
DefaultPreemption is a PostFilter plugin implements the preemption logic.
func (*DefaultPreemption) CandidatesToVictimsMap ¶
func (pl *DefaultPreemption) CandidatesToVictimsMap(candidates []preemption.Candidate) map[string]*extenderv1.Victims
This function is not applicable for out-of-tree preemption plugins that exercise different preemption candidates on the same nominated node.
func (*DefaultPreemption) GetOffsetAndNumCandidates ¶
func (pl *DefaultPreemption) GetOffsetAndNumCandidates(numNodes int32) (int32, int32)
GetOffsetAndNumCandidates chooses a random offset and calculates the number of candidates that should be shortlisted for dry running preemption.
func (*DefaultPreemption) Name ¶
func (pl *DefaultPreemption) Name() string
Name returns name of the plugin. It is used in logs, etc.
func (*DefaultPreemption) PodEligibleToPreemptOthers ¶
func (pl *DefaultPreemption) PodEligibleToPreemptOthers(pod *v1.Pod, 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 (*DefaultPreemption) PostFilter ¶
func (pl *DefaultPreemption) PostFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, m framework.NodeToStatusMap) (*framework.PostFilterResult, *framework.Status)
PostFilter invoked at the postFilter extension point.
func (*DefaultPreemption) SelectVictimsOnNode ¶
func (pl *DefaultPreemption) SelectVictimsOnNode( ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo, pdbs []*policy.PodDisruptionBudget) ([]*v1.Pod, int, *framework.Status)
SelectVictimsOnNode finds minimum set of pods on the given node that should be preempted in order to make enough room for "pod" to be scheduled.
Source Files ¶
default_preemption.go
- Version
- v1.23.14
- Published
- Nov 9, 2022
- Platform
- js/wasm
- Imports
- 23 packages
- Last checked
- 14 seconds ago –
Tools for package owners.