package scheduler
import "k8s.io/kubernetes/pkg/scheduler"
Index ¶
- Constants
- func GetPodDisruptionBudgetLister(informerFactory informers.SharedInformerFactory) policylisters.PodDisruptionBudgetLister
- func MakeDefaultErrorFunc(client clientset.Interface, podQueue internalqueue.SchedulingQueue, schedulerCache internalcache.Cache) func(*framework.PodInfo, error)
- func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) coreinformers.PodInformer
- type Binder
- type Configurator
- type Option
- func WithAlgorithmSource(source schedulerapi.SchedulerAlgorithmSource) Option
- func WithBindTimeoutSeconds(bindTimeoutSeconds int64) Option
- func WithExtenders(e ...schedulerapi.Extender) Option
- func WithFrameworkOutOfTreeRegistry(registry framework.Registry) Option
- func WithPercentageOfNodesToScore(percentageOfNodesToScore int32) Option
- func WithPodInitialBackoffSeconds(podInitialBackoffSeconds int64) Option
- func WithPodMaxBackoffSeconds(podMaxBackoffSeconds int64) Option
- func WithPreemptionDisabled(disablePreemption bool) Option
- func WithProfiles(p ...schedulerapi.KubeSchedulerProfile) Option
- type Scheduler
- func New(client clientset.Interface, informerFactory informers.SharedInformerFactory, podInformer coreinformers.PodInformer, recorderFactory profile.RecorderFactory, stopCh <-chan struct{}, opts ...Option) (*Scheduler, error)
- func (sched *Scheduler) Cache() internalcache.Cache
- func (sched *Scheduler) Run(ctx context.Context)
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" )
Functions ¶
func GetPodDisruptionBudgetLister ¶
func GetPodDisruptionBudgetLister(informerFactory informers.SharedInformerFactory) policylisters.PodDisruptionBudgetLister
GetPodDisruptionBudgetLister returns pdb lister from the given informer factory. Returns nil if PodDisruptionBudget feature is disabled.
func MakeDefaultErrorFunc ¶
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 ¶
func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) coreinformers.PodInformer
NewPodInformer creates a shared index informer that returns only non-terminal pods.
Types ¶
type Binder ¶
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 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 WithBindTimeoutSeconds ¶
WithBindTimeoutSeconds sets bindTimeoutSeconds for Scheduler, the default value is 100
func WithExtenders ¶
func WithExtenders(e ...schedulerapi.Extender) Option
WithExtenders sets extenders for the Scheduler
func WithFrameworkOutOfTreeRegistry ¶
WithFrameworkOutOfTreeRegistry sets the registry for out-of-tree plugins. Those plugins will be appended to the default registry.
func WithPercentageOfNodesToScore ¶
WithPercentageOfNodesToScore sets percentageOfNodesToScore for Scheduler, the default value is 50
func WithPodInitialBackoffSeconds ¶
WithPodInitialBackoffSeconds sets podInitialBackoffSeconds for Scheduler, the default value is 1
func WithPodMaxBackoffSeconds ¶
WithPodMaxBackoffSeconds sets podMaxBackoffSeconds for Scheduler, the default value is 10
func WithPreemptionDisabled ¶
WithPreemptionDisabled sets disablePreemption for Scheduler, the default value is false
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.PodInfo // Error is called if there is an error. It is passed the pod in // question, and the error Error func(*framework.PodInfo, error) // Close this to shut down the scheduler. StopEverything <-chan struct{} // VolumeBinder handles PVC/PV binding for the pod. VolumeBinder scheduling.SchedulerVolumeBinder // Disable pod preemption or not. DisablePreemption bool // 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, podInformer coreinformers.PodInformer, recorderFactory profile.RecorderFactory, stopCh <-chan struct{}, opts ...Option) (*Scheduler, error)
New returns a Scheduler
func (*Scheduler) Cache ¶
func (sched *Scheduler) Cache() internalcache.Cache
Cache returns the cache in scheduler for test to check the data in scheduler.
func (*Scheduler) Run ¶
Run begins watching and scheduling. It waits for cache to be synced, then starts scheduling and blocked until the context is done.
Source Files ¶
eventhandlers.go factory.go scheduler.go
Directories ¶
- Version
- v1.18.14
- Published
- Dec 18, 2020
- Platform
- js/wasm
- Imports
- 47 packages
- Last checked
- 1 minute ago –
Tools for package owners.