Documentation ¶
Overview ¶
Package scheduler contains a generic Scheduler interface and several implementations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ControllerLister ¶ added in v1.1.0
type ControllerLister interface { // Lists all the replication controllers List() ([]api.ReplicationController, error) // Gets the services for the given pod GetPodControllers(*api.Pod) ([]api.ReplicationController, error) }
ControllerLister interface represents anything that can produce a list of ReplicationController; the list is consumed by a scheduler.
type EmptyControllerLister ¶ added in v1.1.0
type EmptyControllerLister struct{}
EmptyControllerLister implements ControllerLister on []api.ReplicationController returning empty data
func (EmptyControllerLister) GetPodControllers ¶ added in v1.1.0
func (f EmptyControllerLister) GetPodControllers(pod *api.Pod) (controllers []api.ReplicationController, err error)
GetPodControllers returns nil
func (EmptyControllerLister) List ¶ added in v1.1.0
func (f EmptyControllerLister) List() ([]api.ReplicationController, error)
List returns nil
type FakeControllerLister ¶ added in v1.1.0
type FakeControllerLister []api.ReplicationController
FakeControllerLister implements ControllerLister on []api.ReplicationController for test purposes.
func (FakeControllerLister) GetPodControllers ¶ added in v1.1.0
func (f FakeControllerLister) GetPodControllers(pod *api.Pod) (controllers []api.ReplicationController, err error)
GetPodControllers gets the ReplicationControllers that have the selector that match the labels on the given pod
func (FakeControllerLister) List ¶ added in v1.1.0
func (f FakeControllerLister) List() ([]api.ReplicationController, error)
List returns []api.ReplicationController, the list of all ReplicationControllers.
type FakeNodeLister ¶ added in v1.1.0
FakeNodeLister implements NodeLister on a []string for test purposes.
type FakePodLister ¶
FakePodLister implements PodLister on an []api.Pods for test purposes.
type FakeServiceLister ¶
FakeServiceLister implements ServiceLister on []api.Service for test purposes.
func (FakeServiceLister) GetPodServices ¶
GetPodServices gets the services that have the selector that match the labels on the given pod
func (FakeServiceLister) List ¶
func (f FakeServiceLister) List() (api.ServiceList, error)
List returns api.ServiceList, the list of all services.
type FitPredicate ¶
type FitPredicate func(pod *api.Pod, nodeName string, nodeInfo *schedulercache.NodeInfo) (bool, error)
FitPredicate is a function that indicates if a pod fits into an existing node.
type NodeLister ¶ added in v1.1.0
NodeLister interface represents anything that can list nodes for a scheduler.
type PodLister ¶
type PodLister interface { // TODO: make this exactly the same as client's Pods(ns).List() method, by returning a api.PodList List(labels.Selector) ([]*api.Pod, error) }
PodLister interface represents anything that can list pods for a scheduler.
type PriorityConfig ¶
type PriorityConfig struct { Function PriorityFunction Weight int }
type PriorityFunction ¶
type PriorityFunction func(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodeLister NodeLister) (schedulerapi.HostPriorityList, error)
type ScheduleAlgorithm ¶
type ScheduleAlgorithm interface {
Schedule(*api.Pod, NodeLister) (selectedMachine string, err error)
}
ScheduleAlgorithm is an interface implemented by things that know how to schedule pods onto machines.
type SchedulerExtender ¶ added in v1.2.0
type SchedulerExtender interface { // Filter based on extender-implemented predicate functions. The filtered list is // expected to be a subset of the supplied list. Filter(pod *api.Pod, nodes *api.NodeList) (filteredNodes *api.NodeList, 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 *api.Pod, nodes *api.NodeList) (hostPriorities *schedulerapi.HostPriorityList, weight int, err error) }
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 ServiceLister ¶
type ServiceLister interface { // Lists all the services List() (api.ServiceList, error) // Gets the services for the given pod GetPodServices(*api.Pod) ([]api.Service, error) }
ServiceLister interface represents anything that can produce a list of services; the list is consumed by a scheduler.