Documentation

Overview

    Package algorithm contains a generic Scheduler interface and several implementations.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var NodeFieldSelectorKeys = map[string]func(*v1.Node) string{
    	api.ObjectNameField: func(n *v1.Node) string { return n.Name },
    }

      NodeFieldSelectorKeys is a map that: the keys are node field selector keys; the values are the functions to get the value of the node field.

      Functions

      This section is empty.

      Types

      type EmptyControllerLister

      type EmptyControllerLister struct{}

        EmptyControllerLister implements ControllerLister on []v1.ReplicationController returning empty data

        func (EmptyControllerLister) GetPodControllers

        func (f EmptyControllerLister) GetPodControllers(pod *v1.Pod) (controllers []*v1.ReplicationController, err error)

          GetPodControllers returns nil

          func (EmptyControllerLister) List

            List returns nil

            func (EmptyControllerLister) ReplicationControllers

              ReplicationControllers returns nil

              type EmptyReplicaSetLister

              type EmptyReplicaSetLister struct{}

                EmptyReplicaSetLister implements ReplicaSetLister on []extensions.ReplicaSet returning empty data

                func (EmptyReplicaSetLister) GetPodReplicaSets

                func (f EmptyReplicaSetLister) GetPodReplicaSets(pod *v1.Pod) (rss []*appsv1.ReplicaSet, err error)

                  GetPodReplicaSets returns nil

                  func (EmptyReplicaSetLister) List

                    List returns nil

                    func (EmptyReplicaSetLister) ReplicaSets

                      ReplicaSets returns nil

                      type EmptyStatefulSetLister

                      type EmptyStatefulSetLister struct{}

                        EmptyStatefulSetLister implements StatefulSetLister on []apps.StatefulSet returning empty data.

                        func (EmptyStatefulSetLister) GetPodStatefulSets

                        func (f EmptyStatefulSetLister) GetPodStatefulSets(pod *v1.Pod) (sss []*appsv1.StatefulSet, err error)

                          GetPodStatefulSets of EmptyStatefulSetLister returns nil.

                          func (EmptyStatefulSetLister) List

                            List returns nil

                            func (EmptyStatefulSetLister) StatefulSets

                              StatefulSets returns nil

                              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, nodeNameToInfo map[string]*schedulernodeinfo.NodeInfo,
                              	) (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,
                              		nodeNameToInfo map[string]*schedulernodeinfo.NodeInfo,
                              	) (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.

                                type StatefulSetLister

                                type StatefulSetLister interface {
                                	// Gets the StatefulSet for the given pod.
                                	GetPodStatefulSets(*v1.Pod) ([]*apps.StatefulSet, error)
                                }

                                  StatefulSetLister interface represents anything that can produce a list of StatefulSet; the list is consumed by a scheduler.

                                  Directories

                                  Path Synopsis