Documentation

Index

Constants

View Source
const (
	// SchedulerError is the reason recorded for events when an error occurs during scheduling a pod.
	SchedulerError = "SchedulerError"
)

Variables

This section is empty.

Functions

func MakeDefaultErrorFunc

func MakeDefaultErrorFunc(client clientset.Interface, podLister corelisters.PodLister, podQueue internalqueue.SchedulingQueue, schedulerCache internalcache.Cache) func(*framework.QueuedPodInfo, error)

    MakeDefaultErrorFunc construct a function to handle pod scheduler error

    func NewInformerFactory

    func NewInformerFactory(cs clientset.Interface, resyncPeriod time.Duration) informers.SharedInformerFactory

      NewInformerFactory creates a SharedInformerFactory and initializes a scheduler specific in-place podInformer.

      Types

      type Binder

      type Binder interface {
      	Bind(binding *v1.Binding) error
      }

        Binder knows how to write a binding.

        type Configurator

        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.

          type FrameworkCapturer

          type FrameworkCapturer func(schedulerapi.KubeSchedulerProfile)

            FrameworkCapturer is used for registering a notify function in building framework.

            type Option

            type Option func(*schedulerOptions)

              Option configures a Scheduler

              func WithAlgorithmSource

              func WithAlgorithmSource(source schedulerapi.SchedulerAlgorithmSource) Option

                WithAlgorithmSource sets schedulerAlgorithmSource for Scheduler, the default is a source with DefaultProvider.

                func WithBuildFrameworkCapturer

                func WithBuildFrameworkCapturer(fc FrameworkCapturer) Option

                  WithBuildFrameworkCapturer sets a notify function for getting buildFramework details.

                  func WithExtenders

                  func WithExtenders(e ...schedulerapi.Extender) Option

                    WithExtenders sets extenders for the Scheduler

                    func WithFrameworkOutOfTreeRegistry

                    func WithFrameworkOutOfTreeRegistry(registry frameworkruntime.Registry) Option

                      WithFrameworkOutOfTreeRegistry sets the registry for out-of-tree plugins. Those plugins will be appended to the default registry.

                      func WithParallelism

                      func WithParallelism(threads int32) Option

                        WithParallelism sets the parallelism for all scheduler algorithms. Default is 16. TODO(#95952): Remove global setter in favor of a struct that holds the configuration.

                        func WithPercentageOfNodesToScore

                        func WithPercentageOfNodesToScore(percentageOfNodesToScore int32) Option

                          WithPercentageOfNodesToScore sets percentageOfNodesToScore for Scheduler, the default value is 50

                          func WithPodInitialBackoffSeconds

                          func WithPodInitialBackoffSeconds(podInitialBackoffSeconds int64) Option

                            WithPodInitialBackoffSeconds sets podInitialBackoffSeconds for Scheduler, the default value is 1

                            func WithPodMaxBackoffSeconds

                            func WithPodMaxBackoffSeconds(podMaxBackoffSeconds int64) Option

                              WithPodMaxBackoffSeconds sets podMaxBackoffSeconds for Scheduler, the default value is 10

                              func WithProfiles

                              func WithProfiles(p ...schedulerapi.KubeSchedulerProfile) Option

                                WithProfiles sets profiles for Scheduler. By default, there is one profile with the name "default-scheduler".

                                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
                                
                                	// 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.QueuedPodInfo
                                
                                	// Error is called if there is an error. It is passed the pod in
                                	// question, and the error
                                	Error func(*framework.QueuedPodInfo, error)
                                
                                	// Close this to shut down the scheduler.
                                	StopEverything <-chan struct{}
                                
                                	// SchedulingQueue holds pods to be scheduled
                                	SchedulingQueue internalqueue.SchedulingQueue
                                
                                	// Profiles are the scheduling profiles.
                                	Profiles profile.Map
                                	// 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

                                  func New(client clientset.Interface,
                                  	informerFactory informers.SharedInformerFactory,
                                  	recorderFactory profile.RecorderFactory,
                                  	stopCh <-chan struct{},
                                  	opts ...Option) (*Scheduler, error)

                                    New returns a Scheduler

                                    func (*Scheduler) Run

                                    func (sched *Scheduler) Run(ctx context.Context)

                                      Run begins watching and scheduling. It starts scheduling and blocked until the context is done.

                                      Directories

                                      Path Synopsis
                                      apis
                                      resources
                                      Package resources provides a metrics collector that reports the resource consumption (requests and limits) of the pods in the cluster as the scheduler and kubelet would interpret it.
                                      Package resources provides a metrics collector that reports the resource consumption (requests and limits) of the pods in the cluster as the scheduler and kubelet would interpret it.
                                      Package profile holds the definition of a scheduling Profile.
                                      Package profile holds the definition of a scheduling Profile.
                                      internal