Documentation
¶
Overview ¶
Package scheduler contains a generic Scheduler interface and several implementations.
Index ¶
- type ControllerLister
- type EmptyControllerLister
- type EmptyReplicaSetLister
- type FakeControllerLister
- type FakeNodeLister
- type FakePodLister
- type FakeReplicaSetLister
- type FakeServiceLister
- type FitPredicate
- type NodeLister
- type PodLister
- type PredicateFailureReason
- type PriorityConfig
- type PriorityFunction
- type ReplicaSetLister
- type ScheduleAlgorithm
- type SchedulerExtender
- type ServiceLister
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
type EmptyReplicaSetLister ¶ added in v1.2.0
type EmptyReplicaSetLister struct{}
EmptyReplicaSetLister implements ReplicaSetLister on []extensions.ReplicaSet returning empty data
func (EmptyReplicaSetLister) GetPodReplicaSets ¶ added in v1.2.0
func (f EmptyReplicaSetLister) GetPodReplicaSets(pod *api.Pod) (rss []extensions.ReplicaSet, err error)
GetPodReplicaSets 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
type FakeNodeLister ¶ added in v1.1.0
type FakeNodeLister []*api.Node
FakeNodeLister implements NodeLister on a []string for test purposes.
type FakePodLister ¶
type FakePodLister []*api.Pod
FakePodLister implements PodLister on an []api.Pods for test purposes.
type FakeReplicaSetLister ¶ added in v1.2.0
type FakeReplicaSetLister []extensions.ReplicaSet
FakeReplicaSetLister implements ControllerLister on []extensions.ReplicaSet for test purposes.
func (FakeReplicaSetLister) GetPodReplicaSets ¶ added in v1.2.0
func (f FakeReplicaSetLister) GetPodReplicaSets(pod *api.Pod) (rss []extensions.ReplicaSet, err error)
GetPodReplicaSets gets the ReplicaSets that have the selector that match the labels on the given pod
type FakeServiceLister ¶
type FakeServiceLister []api.Service
FakeServiceLister implements ServiceLister on []api.Service for test purposes.
func (FakeServiceLister) GetPodServices ¶
func (f FakeServiceLister) GetPodServices(pod *api.Pod) (services []api.Service, err error)
GetPodServices gets the services that have the selector that match the labels on the given pod
type FitPredicate ¶
type FitPredicate func(pod *api.Pod, meta interface{}, nodeInfo *schedulercache.NodeInfo) (bool, []PredicateFailureReason, error)
FitPredicate is a function that indicates if a pod fits into an existing node. The failure information is given by the error.
type NodeLister ¶ added in v1.1.0
type NodeLister interface {
// We explicitly return []*api.Node, instead of api.NodeList, to avoid
// performing expensive copies that are unneded.
List() ([]*api.Node, error)
}
NodeLister interface represents anything that can list nodes for a scheduler.
type PodLister ¶
type PodLister interface {
// We explicitly return []*api.Pod, instead of api.PodList, to avoid
// performing expensive copies that are unneded.
List(labels.Selector) ([]*api.Pod, error)
}
PodLister interface represents anything that can list pods for a scheduler.
type PredicateFailureReason ¶ added in v1.4.0
type PredicateFailureReason interface {
GetReason() string
}
type PriorityConfig ¶
type PriorityConfig struct {
Function PriorityFunction
Weight int
}
type PriorityFunction ¶
type PriorityFunction func(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodes []*api.Node) (schedulerapi.HostPriorityList, error)
type ReplicaSetLister ¶ added in v1.2.0
type ReplicaSetLister interface {
// Lists all the replicasets
List() ([]extensions.ReplicaSet, error)
// Gets the replicasets for the given pod
GetPodReplicaSets(*api.Pod) ([]extensions.ReplicaSet, error)
}
ReplicaSetLister interface represents anything that can produce a list of ReplicaSet; the list is consumed by a scheduler.
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. failedNodesMap optionally contains
// the list of failed nodes and failure reasons.
Filter(pod *api.Pod, nodes []*api.Node) (filteredNodes []*api.Node, failedNodesMap schedulerapi.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 *api.Pod, nodes []*api.Node) (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.