package algorithm
import "k8s.io/kubernetes/pkg/scheduler/algorithm"
Package algorithm contains a generic Scheduler interface and several implementations.
Index ¶
Types ¶
type SchedulerExtender ¶
type SchedulerExtender interface { // Name returns a unique name that identifies the extender. Name() string // Filter based on extender-implemented predicate functions. The filtered list is // expected to be a subset of the supplied list. failedNodesMap optionally contains // the list of failed nodes and failure reasons. Filter(pod *v1.Pod, nodes []*v1.Node) (filteredNodes []*v1.Node, failedNodesMap extenderv1.FailedNodesMap, err error) // Prioritize based on extender-implemented priority functions. The returned scores & weight // are used to compute the weighted score for an extender. The weighted scores are added to // the scores computed by Kubernetes scheduler. The total scores are used to do the host selection. Prioritize(pod *v1.Pod, nodes []*v1.Node) (hostPriorities *extenderv1.HostPriorityList, weight int64, err error) // Bind delegates the action of binding a pod to a node to the extender. Bind(binding *v1.Binding) error // IsBinder returns whether this extender is configured for the Bind method. IsBinder() bool // IsInterested returns true if at least one extended resource requested by // this pod is managed by this extender. IsInterested(pod *v1.Pod) bool // ProcessPreemption returns nodes with their victim pods processed by extender based on // given: // 1. Pod to schedule // 2. Candidate nodes and victim pods (nodeToVictims) generated by previous scheduling process. // 3. nodeNameToInfo to restore v1.Node from node name if extender cache is enabled. // The possible changes made by extender may include: // 1. Subset of given candidate nodes after preemption phase of extender. // 2. A different set of victim pod for every given candidate node after preemption phase of extender. ProcessPreemption( pod *v1.Pod, nodeToVictims map[*v1.Node]*extenderv1.Victims, nodeInfos listers.NodeInfoLister) (map[*v1.Node]*extenderv1.Victims, error) // SupportsPreemption returns if the scheduler extender support preemption or not. SupportsPreemption() bool // IsIgnorable returns true indicates scheduling should not fail when this extender // is unavailable. This gives scheduler ability to fail fast and tolerate non-critical extenders as well. IsIgnorable() bool }
SchedulerExtender is an interface for external processes to influence scheduling decisions made by Kubernetes. This is typically needed for resources not directly managed by Kubernetes.
Source Files ¶
doc.go scheduler_interface.go
Directories ¶
Path | Synopsis |
---|---|
pkg/scheduler/algorithm/predicates |
- Version
- v1.18.0-alpha.2
- Published
- Jan 21, 2020
- Platform
- js/wasm
- Imports
- 3 packages
- Last checked
- 37 seconds ago –
Tools for package owners.