kube-scheduler Configuration (v1beta2)

    ClientConnectionConfiguration

    ClientConnectionConfiguration contains details for constructing a client.

    DebuggingConfiguration

    Appears in:

    DebuggingConfiguration holds configuration for Debugging related features.

    FieldDescription
    enableProfiling [Required]
    bool
    enableProfiling enables profiling via web interface host:port/debug/pprof/
    enableContentionProfiling [Required]
    bool
    enableContentionProfiling enables lock contention profiling, if enableProfiling is true.

    LeaderElectionConfiguration

    Appears in:

    LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.

    FieldDescription
    leaderElect [Required]
    bool
    leaderElect enables a leader election client to gain leadership before executing the main loop. Enable this when running replicated components for high availability.
    leaseDuration [Required]
    leaseDuration is the duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled.
    renewDeadline [Required]
    meta/v1.Duration
    renewDeadline is the interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled.
    retryPeriod [Required]
    retryPeriod is the duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled.
    resourceLock [Required]
    string
    resourceLock indicates the resource object type that will be used to lock during leader election cycles.
    resourceName [Required]
    string
    resourceName indicates the name of resource object that will be used to lock during leader election cycles.
    resourceNamespace [Required]
    string
    resourceName indicates the namespace of resource object that will be used to lock during leader election cycles.

    LoggingConfiguration

    Appears in:

    LoggingConfiguration contains logging options Refer Logs Options for more information.

    FieldDescription
    format [Required]
    string
    Format Flag specifies the structure of log messages. default value of format is text
    sanitization [Required]
    bool
    [Experimental] When enabled prevents logging of fields tagged as sensitive (passwords, keys, tokens). Runtime log sanitization may introduce significant computation overhead and therefore should not be enabled in production.`)

    DefaultPreemptionArgs

    DefaultPreemptionArgs holds arguments used to configure the DefaultPreemption plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    DefaultPreemptionArgs
    minCandidateNodesPercentage [Required]
    int32
    MinCandidateNodesPercentage is the minimum number of candidates to shortlist when dry running preemption as a percentage of number of nodes. Must be in the range [0, 100]. Defaults to 10% of the cluster size if unspecified.
    minCandidateNodesAbsolute [Required]
    int32
    MinCandidateNodesAbsolute is the absolute minimum number of candidates to shortlist. The likely number of candidates enumerated for dry running preemption is given by the formula: numCandidates = max(numNodes ∗ minCandidateNodesPercentage, minCandidateNodesAbsolute) We say “likely” because there are other factors such as PDB violations that play a role in the number of candidates shortlisted. Must be at least 0 nodes. Defaults to 100 nodes if unspecified.

    InterPodAffinityArgs

    InterPodAffinityArgs holds arguments used to configure the InterPodAffinity plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    InterPodAffinityArgs
    hardPodAffinityWeight [Required]
    int32
    HardPodAffinityWeight is the scoring weight for existing pods with a matching hard affinity to the incoming pod.

    KubeSchedulerConfiguration

    KubeSchedulerConfiguration configures a scheduler

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    KubeSchedulerConfiguration
    parallelism [Required]
    int32
    Parallelism defines the amount of parallelism in algorithms for scheduling a Pods. Must be greater than 0. Defaults to 16
    leaderElection [Required]
    LeaderElectionConfiguration
    LeaderElection defines the configuration of leader election client.
    clientConnection [Required]
    ClientConnection specifies the kubeconfig file and client connection settings for the proxy server to use when communicating with the apiserver.
    healthzBindAddress [Required]
    string
    HealthzBindAddress is the IP address and port for the health check server to serve on, defaulting to 0.0.0.0:10251
    metricsBindAddress [Required]
    string
    MetricsBindAddress is the IP address and port for the metrics server to serve on, defaulting to 0.0.0.0:10251.
    DebuggingConfiguration [Required]
    DebuggingConfiguration
    (Members of DebuggingConfiguration are embedded into this type.) DebuggingConfiguration holds configuration for Debugging related features TODO: We might wanna make this a substruct like Debugging componentbaseconfigv1alpha1.DebuggingConfiguration
    percentageOfNodesToScore [Required]
    int32
    PercentageOfNodesToScore is the percentage of all nodes that once found feasible for running a pod, the scheduler stops its search for more feasible nodes in the cluster. This helps improve scheduler’s performance. Scheduler always tries to find at least “minFeasibleNodesToFind” feasible nodes no matter what the value of this flag is. Example: if the cluster size is 500 nodes and the value of this flag is 30, then scheduler stops finding further feasible nodes once it finds 150 feasible ones. When the value is 0, default percentage (5%—50% based on the size of the cluster) of the nodes will be scored.
    podInitialBackoffSeconds [Required]
    int64
    PodInitialBackoffSeconds is the initial backoff for unschedulable pods. If specified, it must be greater than 0. If this value is null, the default value (1s) will be used.
    podMaxBackoffSeconds [Required]
    int64
    PodMaxBackoffSeconds is the max backoff for unschedulable pods. If specified, it must be greater than podInitialBackoffSeconds. If this value is null, the default value (10s) will be used.
    profiles [Required]
    Profiles are scheduling profiles that kube-scheduler supports. Pods can choose to be scheduled under a particular profile by setting its associated scheduler name. Pods that don’t specify any scheduler name are scheduled with the “default-scheduler” profile, if present here.
    extenders [Required]
    []Extender
    Extenders are the list of scheduler extenders, each holding the values of how to communicate with the extender. These extenders are shared by all scheduler profiles.

    NodeAffinityArgs

    NodeAffinityArgs holds arguments to configure the NodeAffinity plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    NodeAffinityArgs

    core/v1.NodeAffinity
    AddedAffinity is applied to all Pods additionally to the NodeAffinity specified in the PodSpec. That is, Nodes need to satisfy AddedAffinity AND .spec.NodeAffinity. AddedAffinity is empty by default (all Nodes match). When AddedAffinity is used, some Pods with affinity requirements that match a specific Node (such as Daemonset Pods) might remain unschedulable.

    NodeResourcesBalancedAllocationArgs

    NodeResourcesBalancedAllocationArgs holds arguments used to configure NodeResourcesBalancedAllocation plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    NodeResourcesBalancedAllocationArgs
    resources [Required]
    []ResourceSpec
    Resources to be managed, the default is “cpu” and “memory” if not specified.

    NodeResourcesFitArgs

    NodeResourcesFitArgs holds arguments used to configure the NodeResourcesFit plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    NodeResourcesFitArgs
    ignoredResources [Required]
    []string
    IgnoredResources is the list of resources that NodeResources fit filter should ignore. This doesn’t apply to scoring.
    ignoredResourceGroups [Required]
    []string
    IgnoredResourceGroups defines the list of resource groups that NodeResources fit filter should ignore. e.g. if group is [“example.com”], it will ignore all resource names that begin with “example.com”, such as “example.com/aaa” and “example.com/bbb”. A resource group name can’t contain ‘/‘. This doesn’t apply to scoring.
    scoringStrategy [Required]
    ScoringStrategy
    ScoringStrategy selects the node resource scoring strategy. The default strategy is LeastAllocated with an equal “cpu” and “memory” weight.

    PodTopologySpreadArgs

    PodTopologySpreadArgs holds arguments used to configure the PodTopologySpread plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    PodTopologySpreadArgs
    defaultConstraints
    []core/v1.TopologySpreadConstraint
    DefaultConstraints defines topology spread constraints to be applied to Pods that don’t define any in pod.spec.topologySpreadConstraints. .defaultConstraints[∗].labelSelectors must be empty, as they are deduced from the Pod’s membership to Services, ReplicationControllers, ReplicaSets or StatefulSets. When not empty, .defaultingType must be “List”.
    defaultingType
    DefaultingType determines how .defaultConstraints are deduced. Can be one of “System” or “List”.
    • “System”: Use kubernetes defined constraints that spread Pods among Nodes and Zones.
    • “List”: Use constraints defined in .defaultConstraints.

    Defaults to “List” if feature gate DefaultPodTopologySpread is disabled and to “System” if enabled.

    VolumeBindingArgs

    VolumeBindingArgs holds arguments used to configure the VolumeBinding plugin.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1beta2
    kind
    string
    VolumeBindingArgs
    bindTimeoutSeconds [Required]
    int64
    BindTimeoutSeconds is the timeout in seconds in volume binding operation. Value must be non-negative integer. The value zero indicates no waiting. If this value is nil, the default value (600) will be used.
    shape
    Shape specifies the points defining the score function shape, which is used to score nodes based on the utilization of statically provisioned PVs. The utilization is calculated by dividing the total requested storage of the pod by the total capacity of feasible PVs on each node. Each point contains utilization (ranges from 0 to 100) and its associated score (ranges from 0 to 10). You can turn the priority by specifying different scores for different utilization numbers. The default shape points are: 1) 0 for 0 utilization 2) 10 for 100 utilization All points must be sorted in increasing order by utilization.

    Appears in:

    Extender holds the parameters used to communicate with the extender. If a verb is unspecified/empty, it is assumed that the extender chose not to provide that extension.

    KubeSchedulerProfile

    Appears in:

    KubeSchedulerProfile is a scheduling profile.

    FieldDescription
    schedulerName [Required]
    string
    SchedulerName is the name of the scheduler associated to this profile. If SchedulerName matches with the pod’s “spec.schedulerName”, then the pod is scheduled with this profile.
    plugins [Required]
    Plugins
    Plugins specify the set of plugins that should be enabled or disabled. Enabled plugins are the ones that should be enabled in addition to the default plugins. Disabled plugins are any of the default plugins that should be disabled. When no enabled or disabled plugin is specified for an extension point, default plugins for that extension point will be used if there is any. If a QueueSort plugin is specified, the same QueueSort Plugin and PluginConfig must be specified for all profiles.
    pluginConfig [Required]
    PluginConfig is an optional set of custom plugin arguments for each plugin. Omitting config args for a plugin is equivalent to using the default config for that plugin.

    Plugin

    Appears in:

    Plugin specifies a plugin name and its weight when applicable. Weight is used only for Score plugins.

    FieldDescription
    name [Required]
    string
    Name defines the name of plugin
    weight [Required]
    int32
    Weight defines the weight of plugin, only used for Score plugins.

    PluginConfig

    Appears in:

    PluginConfig specifies arguments that should be passed to a plugin at the time of initialization. A plugin that is invoked at multiple extension points is initialized once. Args can have arbitrary structure. It is up to the plugin to process these Args.

    FieldDescription
    name [Required]
    string
    Name defines the name of plugin being configured
    args [Required]
    k8s.io/apimachinery/pkg/runtime.RawExtension
    Args defines the arguments passed to the plugins at the time of initialization. Args can have arbitrary structure.

    PluginSet

    Appears in:

    PluginSet specifies enabled and disabled plugins for an extension point. If an array is empty, missing, or nil, default plugins at that extension point will be used.

    FieldDescription
    enabled [Required]
    Enabled specifies plugins that should be enabled in addition to default plugins. If the default plugin is also configured in the scheduler config file, the weight of plugin will be overridden accordingly. These are called after default plugins and in the same order specified here.
    disabled [Required]
    []Plugin
    Disabled specifies default plugins that should be disabled. When all default plugins need to be disabled, an array containing only one “∗” should be provided.

    Plugins

    Plugins include multiple extension points. When specified, the list of plugins for a particular extension point are the only ones enabled. If an extension point is omitted from the config, then the default set of plugins is used for that extension point. Enabled plugins are called in the order specified here, after default plugins. If they need to be invoked before default plugins, default plugins must be disabled and re-enabled here in desired order.

    FieldDescription
    queueSort [Required]
    QueueSort is a list of plugins that should be invoked when sorting pods in the scheduling queue.
    preFilter [Required]
    PluginSet
    PreFilter is a list of plugins that should be invoked at “PreFilter” extension point of the scheduling framework.
    filter [Required]
    Filter is a list of plugins that should be invoked when filtering out nodes that cannot run the Pod.
    postFilter [Required]
    PluginSet
    PostFilter is a list of plugins that are invoked after filtering phase, no matter whether filtering succeeds or not.
    preScore [Required]
    PreScore is a list of plugins that are invoked before scoring.
    score [Required]
    PluginSet
    Score is a list of plugins that should be invoked when ranking nodes that have passed the filtering phase.
    reserve [Required]
    Reserve is a list of plugins invoked when reserving/unreserving resources after a node is assigned to run the pod.
    permit [Required]
    PluginSet
    Permit is a list of plugins that control binding of a Pod. These plugins can prevent or delay binding of a Pod.
    preBind [Required]
    PreBind is a list of plugins that should be invoked before a pod is bound.
    bind [Required]
    PluginSet
    Bind is a list of plugins that should be invoked at “Bind” extension point of the scheduling framework. The scheduler call these plugins in order. Scheduler skips the rest of these plugins as soon as one returns success.
    postBind [Required]
    PostBind is a list of plugins that should be invoked after a pod is successfully bound.

    PodTopologySpreadConstraintsDefaulting

    (Alias of string)

    Appears in:

    PodTopologySpreadConstraintsDefaulting defines how to set default constraints for the PodTopologySpread plugin.

    RequestedToCapacityRatioParam

    Appears in:

    RequestedToCapacityRatioParam define RequestedToCapacityRatio parameters

    FieldDescription
    shape [Required]
    []UtilizationShapePoint
    Shape is a list of points defining the scoring function shape.

    ResourceSpec

    Appears in:

    ResourceSpec represents a single resource.

    FieldDescription
    name [Required]
    string
    Name of the resource.
    weight [Required]
    int64
    Weight of the resource.

    ScoringStrategy

    Appears in:

    ScoringStrategy define ScoringStrategyType for node resource plugin

    FieldDescription
    type [Required]
    ScoringStrategyType
    Type selects which strategy to run.
    resources [Required]
    Resources to consider when scoring. The default resource set includes “cpu” and “memory” with an equal weight. Allowed weights go from 1 to 100. Weight defaults to 1 if not specified or explicitly set to 0.
    [Required]
    RequestedToCapacityRatioParam
    Arguments specific to RequestedToCapacityRatio strategy.

    ScoringStrategyType

    (Alias of string)

    Appears in:

    ScoringStrategyType the type of scoring strategy used in NodeResourcesFit plugin.

    UtilizationShapePoint

    Appears in:

    UtilizationShapePoint represents single point of priority function shape.

    FieldDescription
    utilization [Required]
    int32
    Utilization (x axis). Valid values are 0 to 100. Fully utilized node maps to 100.
    score [Required]
    int32
    Score assigned to given utilization (y axis). Valid values are 0 to 10.

    Policy

    Policy describes a struct for a policy resource used in api.

    FieldDescription
    apiVersion
    string
    kubescheduler.config.k8s.io/v1
    kind
    string
    Policy
    predicates [Required]
    Holds the information to configure the fit predicate functions
    priorities [Required]
    []PriorityPolicy
    Holds the information to configure the priority functions
    extenders [Required]
    Holds the information to communicate with the extender(s)
    hardPodAffinitySymmetricWeight [Required]
    int32
    RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 1-100.
    alwaysCheckAllPredicates [Required]
    bool
    When AlwaysCheckAllPredicates is set to true, scheduler checks all the configured predicates even after one or more of them fails. When the flag is set to false, scheduler skips checking the rest of the predicates after it finds one predicate that failed.

    Appears in:

    ExtenderManagedResource describes the arguments of extended resources managed by an extender.

    FieldDescription
    name [Required]
    string
    Name is the extended resource name.
    ignoredByScheduler [Required]
    bool
    IgnoredByScheduler indicates whether kube-scheduler should ignore this resource when applying predicates.

    ExtenderTLSConfig

    Appears in:

    ExtenderTLSConfig contains settings to enable TLS with extender

    LabelPreference

    Appears in:

    LabelPreference holds the parameters that are used to configure the corresponding priority function

    FieldDescription
    label [Required]
    string
    Used to identify node “groups”
    presence [Required]
    bool
    This is a boolean flag If true, higher priority is given to nodes that have the label If false, higher priority is given to nodes that do not have the label

    LabelsPresence

    Appears in:

    LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.

    FieldDescription
    labels [Required]
    []string
    The list of labels that identify node “groups” All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod
    presence [Required]
    bool
    The boolean flag that indicates whether the labels should be present or absent from the node

    LegacyExtender

    Appears in:

    LegacyExtender holds the parameters used to communicate with the extender. If a verb is unspecified/empty, it is assumed that the extender chose not to provide that extension.

    FieldDescription
    urlPrefix [Required]
    string
    URLPrefix at which the extender is available
    filterVerb [Required]
    string
    Verb for the filter call, empty if not supported. This verb is appended to the URLPrefix when issuing the filter call to extender.
    preemptVerb [Required]
    string
    Verb for the preempt call, empty if not supported. This verb is appended to the URLPrefix when issuing the preempt call to extender.
    prioritizeVerb [Required]
    string
    Verb for the prioritize call, empty if not supported. This verb is appended to the URLPrefix when issuing the prioritize call to extender.
    weight [Required]
    int64
    The numeric multiplier for the node scores that the prioritize call generates. The weight should be a positive integer
    bindVerb [Required]
    string
    Verb for the bind call, empty if not supported. This verb is appended to the URLPrefix when issuing the bind call to extender. If this method is implemented by the extender, it is the extender’s responsibility to bind the pod to apiserver. Only one extender can implement this function.
    enableHttps [Required]
    bool
    EnableHTTPS specifies whether https should be used to communicate with the extender
    tlsConfig [Required]
    ExtenderTLSConfig
    TLSConfig specifies the transport layer security config
    httpTimeout [Required]
    HTTPTimeout specifies the timeout duration for a call to the extender. Filter timeout fails the scheduling of the pod. Prioritize timeout is ignored, k8s/other extenders priorities are used to select the node.
    nodeCacheCapable [Required]
    bool
    NodeCacheCapable specifies that the extender is capable of caching node information, so the scheduler should only send minimal information about the eligible nodes assuming that the extender already cached full details of all nodes in the cluster
    managedResources
    []ExtenderManagedResource
    ManagedResources is a list of extended resources that are managed by this extender. - A pod will be sent to the extender on the Filter, Prioritize and Bind (if the extender is the binder) phases iff the pod requests at least one of the extended resources in this list. If empty or unspecified, all pods will be sent to this extender. - If IgnoredByScheduler is set to true for a resource, kube-scheduler will skip checking the resource in predicates.
    ignorable [Required]
    bool
    Ignorable specifies if the extender is ignorable, i.e. scheduling should not fail when the extender returns an error or is not reachable.

    PredicateArgument

    Appears in:

    PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration. Only one of its members may be specified

    FieldDescription
    serviceAffinity [Required]
    The predicate that provides affinity for pods belonging to a service It uses a label to identify nodes that belong to the same “group”
    labelsPresence [Required]
    LabelsPresence
    The predicate that checks whether a particular node has a certain label defined or not, regardless of value

    PredicatePolicy

    Appears in:

    PredicatePolicy describes a struct of a predicate policy.

    FieldDescription
    name [Required]
    string
    Identifier of the predicate policy For a custom predicate, the name can be user-defined For the Kubernetes provided predicates, the name is the identifier of the pre-defined predicate
    argument [Required]
    Holds the parameters to configure the given predicate

    PriorityArgument

    Appears in:

    PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration. Only one of its members may be specified

    FieldDescription
    serviceAntiAffinity [Required]
    ServiceAntiAffinity
    The priority function that ensures a good spread (anti-affinity) for pods belonging to a service It uses a label to identify nodes that belong to the same “group”
    labelPreference [Required]
    The priority function that checks whether a particular node has a certain label defined or not, regardless of value
    requestedToCapacityRatioArguments [Required]
    RequestedToCapacityRatioArguments
    The RequestedToCapacityRatio priority function is parametrized with function shape.

    PriorityPolicy

    Appears in:

    PriorityPolicy describes a struct of a priority policy.

    FieldDescription
    name [Required]
    string
    Identifier of the priority policy For a custom priority, the name can be user-defined For the Kubernetes provided priority functions, the name is the identifier of the pre-defined priority function
    weight [Required]
    int64
    The numeric multiplier for the node scores that the priority function generates The weight should be non-zero and can be a positive or a negative integer
    argument [Required]
    Holds the parameters to configure the given priority function

    RequestedToCapacityRatioArguments

    Appears in:

    RequestedToCapacityRatioArguments holds arguments specific to RequestedToCapacityRatio priority function.

    FieldDescription
    shape [Required]
    []UtilizationShapePoint
    Array of point defining priority function shape.
    resources [Required]
    No description provided.

    ResourceSpec

    Appears in:

    ResourceSpec represents single resource and weight for bin packing of priority RequestedToCapacityRatioArguments.

    FieldDescription
    name [Required]
    string
    Name of the resource to be managed by RequestedToCapacityRatio function.
    weight [Required]
    int64
    Weight of the resource.

    ServiceAffinity

    Appears in:

    ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.

    FieldDescription
    labels [Required]
    []string
    The list of labels that identify node “groups” All of the labels should match for the node to be considered a fit for hosting the pod

    ServiceAntiAffinity

    Appears in:

    ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function

    FieldDescription
    label [Required]
    string
    Used to identify node “groups”

    Appears in:

    UtilizationShapePoint represents single point of priority function shape.

    Last modified August 05, 2021 at 12:50 PM PST : Config API for 1.22 (f51ed0569)