Documentation ¶
Index ¶
- Constants
- func AddAllEventHandlers(sched *Scheduler, schedulerName string, ...)
- func ApplyPredicatesAndPriorities(s *Snapshot)
- func GetCSINodeLister(informerFactory informers.SharedInformerFactory) storagelisters.CSINodeLister
- func GetPodDisruptionBudgetLister(informerFactory informers.SharedInformerFactory) policylisters.PodDisruptionBudgetLister
- func InsertPredicateKeyToAlgoProvider(providerName, key string) error
- func InsertPredicateKeyToAlgorithmProviderMap(key string)
- func InsertPriorityKeyToAlgorithmProviderMap(key string)
- func IsFitPredicateRegistered(name string) bool
- func IsPriorityFunctionRegistered(name string) bool
- func ListAlgorithmProviders() string
- func ListRegisteredFitPredicates() []string
- func ListRegisteredPriorityFunctions() []string
- func MakeDefaultErrorFunc(client clientset.Interface, podQueue internalqueue.SchedulingQueue, ...) func(*framework.PodInfo, error)
- func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) coreinformers.PodInformer
- func RegisterAlgorithmProvider(name string, predicateKeys, priorityKeys sets.String) string
- func RegisterCustomFitPredicate(policy schedulerapi.PredicatePolicy, pluginArgs *plugins.ConfigProducerArgs) string
- func RegisterCustomPriorityFunction(policy schedulerapi.PriorityPolicy, ...) string
- func RegisterFitPredicate(name string, predicate predicates.FitPredicate) string
- func RegisterFitPredicateFactory(name string, predicateFactory FitPredicateFactory) string
- func RegisterMandatoryFitPredicate(name string, predicate predicates.FitPredicate) string
- func RegisterPredicateMetadataProducerFactory(f PredicateMetadataProducerFactory)
- func RegisterPriorityConfigFactory(name string, pcf PriorityConfigFactory) string
- func RegisterPriorityMapReduceFunction(name string, mapFunction priorities.PriorityMapFunction, ...) string
- func RegisterPriorityMetadataProducerFactory(f PriorityMetadataProducerFactory)
- func RemoveFitPredicate(name string)
- func RemovePredicateKeyFromAlgoProvider(providerName, key string) error
- func RemovePredicateKeyFromAlgorithmProviderMap(key string)
- type AlgorithmFactoryArgs
- type AlgorithmProviderConfig
- type Binder
- type Configurator
- func (c *Configurator) Create() (*Scheduler, error)
- func (c *Configurator) CreateFromConfig(policy schedulerapi.Policy) (*Scheduler, error)
- func (c *Configurator) CreateFromKeys(predicateKeys, priorityKeys sets.String, ...) (*Scheduler, error)
- func (c *Configurator) CreateFromProvider(providerName string) (*Scheduler, error)
- func (c *Configurator) GetHardPodAffinitySymmetricWeight() int32
- type FitPredicateFactory
- type Option
- func WithAlgorithmSource(source schedulerapi.SchedulerAlgorithmSource) Option
- func WithBindTimeoutSeconds(bindTimeoutSeconds int64) Option
- func WithFrameworkConfigProducerRegistry(registry *frameworkplugins.ConfigProducerRegistry) Option
- func WithFrameworkDefaultRegistry(registry framework.Registry) Option
- func WithFrameworkOutOfTreeRegistry(registry framework.Registry) Option
- func WithFrameworkPluginConfig(pluginConfig []schedulerapi.PluginConfig) Option
- func WithFrameworkPlugins(plugins *schedulerapi.Plugins) Option
- func WithHardPodAffinitySymmetricWeight(hardPodAffinitySymmetricWeight int32) Option
- func WithName(schedulerName string) Option
- func WithPercentageOfNodesToScore(percentageOfNodesToScore int32) Option
- func WithPodInitialBackoffSeconds(podInitialBackoffSeconds int64) Option
- func WithPodMaxBackoffSeconds(podMaxBackoffSeconds int64) Option
- func WithPreemptionDisabled(disablePreemption bool) Option
- type PredicateMetadataProducerFactory
- type PriorityConfigFactory
- type PriorityFunctionFactory
- type PriorityMetadataProducerFactory
- type Scheduler
- type Snapshot
Constants ¶
const ( // BindTimeoutSeconds defines the default bind timeout BindTimeoutSeconds = 100 // SchedulerError is the reason recorded for events when an error occurs during scheduling a pod. SchedulerError = "SchedulerError" )
const (
// DefaultProvider defines the default algorithm provider name.
DefaultProvider = "DefaultProvider"
)
Variables ¶
This section is empty.
Functions ¶
func AddAllEventHandlers ¶ added in v1.14.0
func AddAllEventHandlers( sched *Scheduler, schedulerName string, informerFactory informers.SharedInformerFactory, podInformer coreinformers.PodInformer, )
AddAllEventHandlers is a helper function used in tests and in Scheduler to add event handlers for various informers.
func ApplyPredicatesAndPriorities ¶ added in v1.17.0
func ApplyPredicatesAndPriorities(s *Snapshot)
ApplyPredicatesAndPriorities sets state of predicates and priorities to `s`.
func GetCSINodeLister ¶ added in v1.17.0
func GetCSINodeLister(informerFactory informers.SharedInformerFactory) storagelisters.CSINodeLister
GetCSINodeLister returns CSINode lister from the given informer factory. Returns nil if CSINodeInfo feature is disabled.
func GetPodDisruptionBudgetLister ¶ added in v1.17.0
func GetPodDisruptionBudgetLister(informerFactory informers.SharedInformerFactory) policylisters.PodDisruptionBudgetLister
GetPodDisruptionBudgetLister returns pdb lister from the given informer factory. Returns nil if PodDisruptionBudget feature is disabled.
func InsertPredicateKeyToAlgoProvider ¶ added in v1.17.0
InsertPredicateKeyToAlgoProvider insert a fit predicate key to algorithmProvider.
func InsertPredicateKeyToAlgorithmProviderMap ¶ added in v1.17.0
func InsertPredicateKeyToAlgorithmProviderMap(key string)
InsertPredicateKeyToAlgorithmProviderMap insert a fit predicate key to all algorithmProviders which in algorithmProviderMap.
func InsertPriorityKeyToAlgorithmProviderMap ¶ added in v1.17.0
func InsertPriorityKeyToAlgorithmProviderMap(key string)
InsertPriorityKeyToAlgorithmProviderMap inserts a priority function to all algorithmProviders which are in algorithmProviderMap.
func IsFitPredicateRegistered ¶ added in v1.17.0
IsFitPredicateRegistered is useful for testing providers.
func IsPriorityFunctionRegistered ¶ added in v1.17.0
IsPriorityFunctionRegistered is useful for testing providers.
func ListAlgorithmProviders ¶ added in v1.17.0
func ListAlgorithmProviders() string
ListAlgorithmProviders is called when listing all available algorithm providers in `kube-scheduler --help`
func ListRegisteredFitPredicates ¶ added in v1.17.0
func ListRegisteredFitPredicates() []string
ListRegisteredFitPredicates returns the registered fit predicates.
func ListRegisteredPriorityFunctions ¶ added in v1.17.0
func ListRegisteredPriorityFunctions() []string
ListRegisteredPriorityFunctions returns the registered priority functions.
func MakeDefaultErrorFunc ¶ added in v1.17.0
func MakeDefaultErrorFunc(client clientset.Interface, podQueue internalqueue.SchedulingQueue, schedulerCache internalcache.Cache) func(*framework.PodInfo, error)
MakeDefaultErrorFunc construct a function to handle pod scheduler error
func NewPodInformer ¶ added in v1.17.0
func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) coreinformers.PodInformer
NewPodInformer creates a shared index informer that returns only non-terminal pods.
func RegisterAlgorithmProvider ¶ added in v1.17.0
RegisterAlgorithmProvider registers a new algorithm provider with the algorithm registry.
func RegisterCustomFitPredicate ¶ added in v1.17.0
func RegisterCustomFitPredicate(policy schedulerapi.PredicatePolicy, pluginArgs *plugins.ConfigProducerArgs) string
RegisterCustomFitPredicate registers a custom fit predicate with the algorithm registry. Returns the name, with which the predicate was registered.
func RegisterCustomPriorityFunction ¶ added in v1.17.0
func RegisterCustomPriorityFunction(policy schedulerapi.PriorityPolicy, configProducerArgs *plugins.ConfigProducerArgs) string
RegisterCustomPriorityFunction registers a custom priority function with the algorithm registry. Returns the name, with which the priority function was registered.
func RegisterFitPredicate ¶ added in v1.17.0
func RegisterFitPredicate(name string, predicate predicates.FitPredicate) string
RegisterFitPredicate registers a fit predicate with the algorithm registry. Returns the name with which the predicate was registered.
func RegisterFitPredicateFactory ¶ added in v1.17.0
func RegisterFitPredicateFactory(name string, predicateFactory FitPredicateFactory) string
RegisterFitPredicateFactory registers a fit predicate factory with the algorithm registry. Returns the name with which the predicate was registered.
func RegisterMandatoryFitPredicate ¶ added in v1.17.0
func RegisterMandatoryFitPredicate(name string, predicate predicates.FitPredicate) string
RegisterMandatoryFitPredicate registers a fit predicate with the algorithm registry, the predicate is used by kubelet, DaemonSet; it is always included in configuration. Returns the name with which the predicate was registered.
func RegisterPredicateMetadataProducerFactory ¶ added in v1.17.0
func RegisterPredicateMetadataProducerFactory(f PredicateMetadataProducerFactory)
RegisterPredicateMetadataProducerFactory registers a MetadataProducer.
func RegisterPriorityConfigFactory ¶ added in v1.17.0
func RegisterPriorityConfigFactory(name string, pcf PriorityConfigFactory) string
RegisterPriorityConfigFactory registers a priority config factory with its name.
func RegisterPriorityMapReduceFunction ¶ added in v1.17.0
func RegisterPriorityMapReduceFunction( name string, mapFunction priorities.PriorityMapFunction, reduceFunction priorities.PriorityReduceFunction, weight int) string
RegisterPriorityMapReduceFunction registers a priority function with the algorithm registry. Returns the name, with which the function was registered.
func RegisterPriorityMetadataProducerFactory ¶ added in v1.17.0
func RegisterPriorityMetadataProducerFactory(f PriorityMetadataProducerFactory)
RegisterPriorityMetadataProducerFactory registers a PriorityMetadataProducerFactory.
func RemoveFitPredicate ¶ added in v1.17.0
func RemoveFitPredicate(name string)
RemoveFitPredicate removes a fit predicate from factory.
func RemovePredicateKeyFromAlgoProvider ¶ added in v1.17.0
RemovePredicateKeyFromAlgoProvider removes a fit predicate key from algorithmProvider.
func RemovePredicateKeyFromAlgorithmProviderMap ¶ added in v1.17.0
func RemovePredicateKeyFromAlgorithmProviderMap(key string)
RemovePredicateKeyFromAlgorithmProviderMap removes a fit predicate key from all algorithmProviders which in algorithmProviderMap.
Types ¶
type AlgorithmFactoryArgs ¶ added in v1.17.0
type AlgorithmFactoryArgs struct { InformerFactory informers.SharedInformerFactory VolumeBinder *volumebinder.VolumeBinder HardPodAffinitySymmetricWeight int32 }
AlgorithmFactoryArgs are passed to all factory functions.
type AlgorithmProviderConfig ¶ added in v1.17.0
type AlgorithmProviderConfig struct { FitPredicateKeys sets.String PriorityFunctionKeys sets.String }
AlgorithmProviderConfig is used to store the configuration of algorithm providers.
func GetAlgorithmProvider ¶ added in v1.17.0
func GetAlgorithmProvider(name string) (*AlgorithmProviderConfig, error)
GetAlgorithmProvider should not be used to modify providers. It is publicly visible for testing.
type Configurator ¶ added in v1.10.0
type Configurator struct { // Close this to stop all reflectors StopEverything <-chan struct{} // contains filtered or unexported fields }
Configurator defines I/O, caching, and other functionality needed to construct a new scheduler.
func (*Configurator) Create ¶ added in v1.10.0
func (c *Configurator) Create() (*Scheduler, error)
Create creates a scheduler with the default algorithm provider.
func (*Configurator) CreateFromConfig ¶ added in v1.10.0
func (c *Configurator) CreateFromConfig(policy schedulerapi.Policy) (*Scheduler, error)
CreateFromConfig creates a scheduler from the configuration file
func (*Configurator) CreateFromKeys ¶ added in v1.10.0
func (c *Configurator) CreateFromKeys(predicateKeys, priorityKeys sets.String, extenders []algorithm.SchedulerExtender) (*Scheduler, error)
CreateFromKeys creates a scheduler from a set of registered fit predicate keys and priority keys.
func (*Configurator) CreateFromProvider ¶ added in v1.10.0
func (c *Configurator) CreateFromProvider(providerName string) (*Scheduler, error)
CreateFromProvider creates a scheduler from the name of a registered algorithm provider.
func (*Configurator) GetHardPodAffinitySymmetricWeight ¶ added in v1.10.0
func (c *Configurator) GetHardPodAffinitySymmetricWeight() int32
GetHardPodAffinitySymmetricWeight is exposed for testing.
type FitPredicateFactory ¶ added in v1.17.0
type FitPredicateFactory func(AlgorithmFactoryArgs) predicates.FitPredicate
FitPredicateFactory produces a FitPredicate from the given args.
type Option ¶ added in v1.13.0
type Option func(*schedulerOptions)
Option configures a Scheduler
func WithAlgorithmSource ¶ added in v1.17.0
func WithAlgorithmSource(source schedulerapi.SchedulerAlgorithmSource) Option
WithAlgorithmSource sets schedulerAlgorithmSource for Scheduler, the default is a source with DefaultProvider.
func WithBindTimeoutSeconds ¶ added in v1.13.0
WithBindTimeoutSeconds sets bindTimeoutSeconds for Scheduler, the default value is 100
func WithFrameworkConfigProducerRegistry ¶ added in v1.17.0
func WithFrameworkConfigProducerRegistry(registry *frameworkplugins.ConfigProducerRegistry) Option
WithFrameworkConfigProducerRegistry sets the framework plugin producer registry.
func WithFrameworkDefaultRegistry ¶ added in v1.17.0
WithFrameworkDefaultRegistry sets the framework's default registry. This is only used in integration tests.
func WithFrameworkOutOfTreeRegistry ¶ added in v1.17.0
WithFrameworkOutOfTreeRegistry sets the registry for out-of-tree plugins. Those plugins will be appended to the default registry.
func WithFrameworkPluginConfig ¶ added in v1.17.0
func WithFrameworkPluginConfig(pluginConfig []schedulerapi.PluginConfig) Option
WithFrameworkPluginConfig sets the PluginConfig slice that the framework should be configured with.
func WithFrameworkPlugins ¶ added in v1.17.0
func WithFrameworkPlugins(plugins *schedulerapi.Plugins) Option
WithFrameworkPlugins sets the plugins that the framework should be configured with.
func WithHardPodAffinitySymmetricWeight ¶ added in v1.13.0
WithHardPodAffinitySymmetricWeight sets hardPodAffinitySymmetricWeight for Scheduler, the default value is 1
func WithName ¶ added in v1.13.0
WithName sets schedulerName for Scheduler, the default schedulerName is default-scheduler
func WithPercentageOfNodesToScore ¶ added in v1.13.0
WithPercentageOfNodesToScore sets percentageOfNodesToScore for Scheduler, the default value is 50
func WithPodInitialBackoffSeconds ¶ added in v1.17.0
WithPodInitialBackoffSeconds sets podInitialBackoffSeconds for Scheduler, the default value is 1
func WithPodMaxBackoffSeconds ¶ added in v1.17.0
WithPodMaxBackoffSeconds sets podMaxBackoffSeconds for Scheduler, the default value is 10
func WithPreemptionDisabled ¶ added in v1.13.0
WithPreemptionDisabled sets disablePreemption for Scheduler, the default value is false
type PredicateMetadataProducerFactory ¶ added in v1.17.0
type PredicateMetadataProducerFactory func(AlgorithmFactoryArgs) predicates.MetadataProducer
PredicateMetadataProducerFactory produces MetadataProducer from the given args.
type PriorityConfigFactory ¶ added in v1.17.0
type PriorityConfigFactory struct { MapReduceFunction PriorityFunctionFactory Weight int64 }
PriorityConfigFactory produces a PriorityConfig from the given function and weight
type PriorityFunctionFactory ¶ added in v1.17.0
type PriorityFunctionFactory func(AlgorithmFactoryArgs) (priorities.PriorityMapFunction, priorities.PriorityReduceFunction)
PriorityFunctionFactory produces map & reduce priority functions from a given args.
type PriorityMetadataProducerFactory ¶ added in v1.17.0
type PriorityMetadataProducerFactory func(AlgorithmFactoryArgs) priorities.MetadataProducer
PriorityMetadataProducerFactory produces MetadataProducer from the given args.
type Scheduler ¶
type Scheduler struct { // It is expected that changes made via SchedulerCache will be observed // by NodeLister and Algorithm. SchedulerCache internalcache.Cache Algorithm core.ScheduleAlgorithm GetBinder func(pod *v1.Pod) Binder // Framework runs scheduler plugins at configured extension points. Framework framework.Framework // NextPod should be a function that blocks until the next pod // is available. We don't use a channel for this, because scheduling // a pod may take some amount of time and we don't want pods to get // stale while they sit in a channel. NextPod func() *framework.PodInfo // Error is called if there is an error. It is passed the pod in // question, and the error Error func(*framework.PodInfo, error) // Recorder is the EventRecorder to use Recorder events.EventRecorder // Close this to shut down the scheduler. StopEverything <-chan struct{} // VolumeBinder handles PVC/PV binding for the pod. VolumeBinder *volumebinder.VolumeBinder // Disable pod preemption or not. DisablePreemption bool // SchedulingQueue holds pods to be scheduled SchedulingQueue internalqueue.SchedulingQueue // The final configuration of the framework. Plugins schedulerapi.Plugins PluginConfig []schedulerapi.PluginConfig // contains filtered or unexported fields }
Scheduler watches for new unscheduled pods. It attempts to find nodes that they fit on and writes bindings back to the api server.
func New ¶ added in v1.13.0
func New(client clientset.Interface, informerFactory informers.SharedInformerFactory, podInformer coreinformers.PodInformer, recorder events.EventRecorder, stopCh <-chan struct{}, opts ...Option) (*Scheduler, error)
New returns a Scheduler
func (*Scheduler) Cache ¶ added in v1.12.0
func (sched *Scheduler) Cache() internalcache.Cache
Cache returns the cache in scheduler for test to check the data in scheduler.
type Snapshot ¶ added in v1.17.0
type Snapshot struct {
// contains filtered or unexported fields
}
Snapshot is used to store current state of registered predicates and priorities.
func RegisteredPredicatesAndPrioritiesSnapshot ¶ added in v1.17.0
func RegisteredPredicatesAndPrioritiesSnapshot() *Snapshot
RegisteredPredicatesAndPrioritiesSnapshot returns a snapshot of current registered predicates and priorities.
Directories ¶
Path | Synopsis |
---|---|
Package algorithm contains a generic Scheduler interface and several implementations.
|
Package algorithm contains a generic Scheduler interface and several implementations. |
apis
|
|
extender/v1
Package v1 contains scheduler API objects.
|
Package v1 contains scheduler API objects. |
framework
|
|
internal
|
|