kube-scheduler 配置 (v1beta3)
资源类型
- DefaultPreemptionArgs
- InterPodAffinityArgs
- KubeSchedulerConfiguration
- NodeAffinityArgs
- NodeResourcesBalancedAllocationArgs
- NodeResourcesFitArgs
- PodTopologySpreadArgs
- VolumeBindingArgs
DefaultPreemptionArgs
DefaultPreemptionArgs 包含用来配置 DefaultPreemption 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | DefaultPreemptionArgs |
minCandidateNodesPercentage [必需]int32 | 此字段为试运行抢占时 shortlist 中候选节点数的下限,数值为节点数的百分比。 字段值必须介于 [0, 100] 之间。未指定时默认值为整个集群规模的 10%。 |
minCandidateNodesAbsolute [必需]int32 | 此字段设置 shortlist 中候选节点的绝对下限。
用于试运行抢占而列举的候选节点个数近似于通过下面的公式计算的: |
InterPodAffinityArgs
InterPodAffinityArgs 包含用来配置 InterPodAffinity 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | InterPodAffinityArgs |
hardPodAffinityWeight [必需]int32 | 此字段是一个计分权重值。针对新增的 Pod,要对现存的、 带有与新 Pod 匹配的硬性亲和性设置的 Pods 计算亲和性得分。 |
KubeSchedulerConfiguration
KubeSchedulerConfiguration 用来配置调度器。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | KubeSchedulerConfiguration |
parallelism [必需]int32 | 此字段设置为调度 Pod 而执行算法时的并发度。此值必须大于 0。默认值为 16。 |
leaderElection [必需]LeaderElectionConfiguration | 此字段用来定义领导者选举客户端的配置。 |
clientConnection [必需]ClientConnectionConfiguration | 此字段为与 API 服务器通信时使用的代理服务器设置 kubeconfig 文件和客户端连接配置。 |
DebuggingConfiguration [必需]DebuggingConfiguration | (DebuggingConfiguration 的成员被内嵌到此类型中)此字段设置与调试相关功能特性的配置。 TODO:我们可能想把它做成一个子结构,像调试 component-base/config/v1alpha1.DebuggingConfiguration 一样。 |
percentageOfNodesToScore [必需]int32 | 此字段为所有节点的百分比,一旦调度器找到所设置比例的、能够运行 Pod 的节点, 则停止在集群中继续寻找更合适的节点。这一配置有助于提高调度器的性能。 调度器总会尝试寻找至少 "minFeasibleNodesToFind" 个可行节点,无论此字段的取值如何。 例如:当集群规模为 500 个节点,而此字段的取值为 30, 则调度器在找到 150 个合适的节点后会停止继续寻找合适的节点。当此值为 0 时, 调度器会使用默认节点数百分比(基于集群规模确定的值,在 5% 到 50% 之间)来执行打分操作。 |
podInitialBackoffSeconds [必需]int64 | 此字段设置不可调度 Pod 的初始回退秒数。如果设置了此字段,其取值必须大于零。 若此值为 null,则使用默认值(1s)。 |
podMaxBackoffSeconds [必需]int64 | 此字段设置不可调度的 Pod 的最大回退秒数。 如果设置了此字段,则其值必须大于 podInitialBackoffSeconds 字段值。 如果此值设置为 null,则使用默认值(10s)。 |
profiles [必需][]KubeSchedulerProfile | 此字段为 kube-scheduler 所支持的方案(profiles)。 Pod 可以通过设置其对应的调度器名称来选择使用特定的方案。 未指定调度器名称的 Pod 会使用"default-scheduler"方案来调度,如果存在的话。 |
extenders [必需][]Extender | 此字段为调度器扩展模块(Extender)的列表, 每个元素包含如何与某扩展模块通信的配置信息。 所有调度器模仿会共享此扩展模块列表。 |
NodeAffinityArgs
NodeAffinityArgs 中包含配置 NodeAffinity 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | NodeAffinityArgs |
addedAffinity core/v1.NodeAffinity |
|
NodeResourcesBalancedAllocationArgs
NodeResourcesBalancedAllocationArgs 包含用来配置 NodeResourcesBalancedAllocation 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | NodeResourcesBalancedAllocationArgs |
resources [必需][]ResourceSpec | 要管理的资源;如果未设置,则默认值为 "cpu" 和 "memory"。 |
NodeResourcesFitArgs
NodeResourcesFitArgs 包含用来配置 NodeResourcesFit 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | NodeResourcesFitArgs |
ignoredResources [必需][]string | 此字段为 NodeResources 匹配过滤器要忽略的资源列表。此列表不影响节点打分。 |
ignoredResourceGroups [必需][]string | 此字段定义 NodeResources 匹配过滤器要忽略的资源组列表。 例如,如果配置值为 ["example.com"], 则以 "example.com" 开头的资源名 (如"example.com/aaa" 和 "example.com/bbb")都会被忽略。 资源组名称中不可以包含 '/'。此设置不影响节点的打分。 |
scoringStrategy [必需]ScoringStrategy | 此字段用来选择节点资源打分策略。默认的策略为 LeastAllocated, 且 "cpu" 和 "memory" 的权重相同。 |
PodTopologySpreadArgs
PodTopologySpreadArgs 包含用来配置 PodTopologySpread 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | PodTopologySpreadArgs |
defaultConstraints []core/v1.TopologySpreadConstraint | 此字段针对未定义 |
defaultingType PodTopologySpreadConstraintsDefaulting |
默认值为 "System"。 |
VolumeBindingArgs
VolumeBindingArgs 包含用来配置 VolumeBinding 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta3 |
kind string | VolumeBindingArgs |
bindTimeoutSeconds [必需]int64 | 此字段设置卷绑定操作的超时秒数。字段值必须是非负数。 取值为 0 意味着不等待。如果此值为 null,则使用默认值(600)。 |
shape []UtilizationShapePoint |
默认的曲线计分点为:
所有计分点必须按利用率值的升序来排序。 |
Extender
出现在:
Extender 包含与扩展模块(Extender)通信所用的参数。 如果未指定 verb 或者 verb 为空,则假定对应的扩展模块选择不提供该扩展功能。
字段 | 描述 |
---|---|
urlPrefix [必需]string | 用来访问扩展模块的 URL 前缀。 |
filterVerb [必需]string | filter 调用所使用的动词,如果不支持过滤操作则为空。 此动词会在向扩展模块发送 filter 调用时追加到 urlPrefix 后面。 |
preemptVerb [必需]string | preempt 调用所使用的动词,如果不支持过滤操作则为空。 此动词会在向扩展模块发送 preempt 调用时追加到 urlPrefix 后面。 |
prioritizeVerb [必需]string | prioritize 调用所使用的动词,如果不支持过滤操作则为空。 此动词会在向扩展模块发送 prioritize 调用时追加到 urlPrefix 后面。 |
weight [必需]int64 | 针对 prioritize 调用所生成的节点分数要使用的数值系数。 weight 值必须是正整数。 |
bindVerb [必需]string | bind 调用所使用的动词,如果不支持过滤操作则为空。 此动词会在向扩展模块发送 bind 调用时追加到 urlPrefix 后面。 如果扩展模块实现了此方法,扩展模块要负责将 Pod 绑定到 API 服务器。 只有一个扩展模块可以实现此函数。 |
enableHTTPS [必需]bool | 此字段设置是否需要使用 HTTPS 来与扩展模块通信。 |
tlsConfig [必需]ExtenderTLSConfig | 此字段设置传输层安全性(TLS)配置。 |
httpTimeout [必需]meta/v1.Duration | 此字段给出扩展模块功能调用的超时值。filter 操作超时会导致 Pod 无法被调度。 prioritize 操作超时会被忽略, Kubernetes 或者其他扩展模块所给出的优先级值会被用来选择节点。 |
nodeCacheCapable [必需]bool | 此字段指示扩展模块可以缓存节点信息,从而调度器应该发送关于可选节点的最少信息, 假定扩展模块已经缓存了集群中所有节点的全部详细信息。 |
managedResources []ExtenderManagedResource |
|
ignorable [必需]bool | 此字段用来设置扩展模块是否是可忽略的。 换言之,当扩展模块返回错误或者完全不可达时,调度操作不应失败。 |
ExtenderManagedResource
出现在:
ExtenderManagedResource 描述某扩展模块所管理的扩展资源的参数。
字段 | 描述 |
---|---|
name [必需]string | 扩展资源的名称。 |
ignoredByScheduler [必需]bool | 此字段标明 kube-scheduler 是否应在应用断言时忽略此资源。 |
ExtenderTLSConfig
出现在:
ExtenderTLSConfig 包含启用与扩展模块间 TLS 传输所需的配置参数。
字段 | 描述 |
---|---|
insecure [必需]bool | 访问服务器时不需要检查 TLS 证书。此配置仅针对测试用途。 |
serverName [必需]string |
|
certFile [必需]string | 服务器端所要求的 TLS 客户端证书认证。 |
keyFile [必需]string | 服务器端所要求的 TLS 客户端秘钥认证。 |
caFile [必需]string | 服务器端被信任的根证书。 |
certData [必需][]byte |
|
keyData [必需][]byte |
|
caData [必需][]byte |
|
KubeSchedulerProfile
出现在:
KubeSchedulerProfile 是一个调度方案。
字段 | 描述 |
---|---|
schedulerName [必需]string |
|
plugins [必需]Plugins |
如果针对某个扩展点没有设置被启用或被禁止的插件,
则使用该扩展点的默认插件(如果有的话)。如果设置了 QueueSort 插件,
则同一个 QueueSort 插件和 |
pluginConfig [必需][]PluginConfig |
|
Plugin
出现在:
Plugin 指定插件的名称及其权重(如果适用的话)。权重仅用于评分(Score)插件。
字段 | 描述 |
---|---|
name [必需]string | 插件的名称。 |
weight [必需]int32 | 插件的权重;仅适用于评分(Score)插件。 |
PluginConfig
出现在:
PluginConfig 给出初始化阶段要传递给插件的参数。 在多个扩展点被调用的插件仅会被初始化一次。 参数可以是任意结构。插件负责处理这里所传的参数。
字段 | 描述 |
---|---|
name [必需]string |
|
args [必需]k8s.io/apimachinery/pkg/runtime.RawExtension |
|
PluginSet
出现在:
PluginSet 为某扩展点设置要启用或禁用的插件。 如果数组为空,或者取值为 null,则使用该扩展点的默认插件集合。
字段 | 描述 |
---|---|
enabled [必需][]Plugin |
|
disabled [必需][]Plugin |
|
Plugins
出现在:
Plugins 结构中包含多个扩展点。当此结构被设置时, 针对特定扩展点所启用的所有插件都在这一列表中。 如果配置中不包含某个扩展点,则使用该扩展点的默认插件集合。 被启用的插件的调用顺序与这里指定的顺序相同,都在默认插件之后调用。 如果它们需要在默认插件之前调用,则需要先行禁止默认插件, 之后在这里按期望的顺序重新启用。
字段 | 描述 |
---|---|
preEnqueue [必需]PluginSet | PreEnqueue 是一个在将 Pod 添加到调度队列之前应该调用的插件列表。 |
queueSort [必需]PluginSet |
|
preFilter [必需]PluginSet |
|
filter [必需]PluginSet |
|
postFilter [必需]PluginSet |
|
preScore [必需]PluginSet |
|
score [必需]PluginSet |
|
reserve [必需]PluginSet |
|
permit [必需]PluginSet |
|
preBind [必需]PluginSet |
|
bind [必需]PluginSet |
|
postBind [必需]PluginSet |
|
multiPoint [必需]PluginSet |
就优先序而言,插件配置遵从以下基本层次:
这意味着优先序较高的插件会先被运行,并且覆盖 用户显式配置的插件也会比默认插件优先序高。 在这样的层次结构设计之下, |
PodTopologySpreadConstraintsDefaulting
(string
类型的别名)
出现在:
PodTopologySpreadConstraintsDefaulting 定义如何为 PodTopologySpread 插件设置默认的约束。
RequestedToCapacityRatioParam
出现在:
RequestedToCapacityRatioParam 结构定义 RequestedToCapacityRatio 的参数。
字段 | 描述 |
---|---|
shape [必需][]UtilizationShapePoint |
|
ResourceSpec
出现在:
ResourceSpec 用来代表某个资源。
字段 | 描述 |
---|---|
name [必需]string | 资源名称。 |
weight [必需]int64 | 资源权重。 |
ScoringStrategy
出现在:
ScoringStrategy 为节点资源插件定义 ScoringStrategyType。
字段 | 描述 |
---|---|
type [必需]ScoringStrategyType |
|
resources [必需][]ResourceSpec |
默认的资源集合包含 "cpu" 和 "memory",且二者权重相同。 权重的取值范围为 1 到 100。 当权重未设置或者显式设置为 0 时,意味着使用默认值 1。 |
requestedToCapacityRatio [必需]RequestedToCapacityRatioParam | 特定于 RequestedToCapacityRatio 策略的参数。 |
ScoringStrategyType
(string
数据类型的别名)
出现在:
ScoringStrategyType 是 NodeResourcesFit 插件所使用的的评分策略类型。
UtilizationShapePoint
出现在:
UtilizationShapePoint 代表的是优先级函数曲线中的一个评分点。
字段 | 描述 |
---|---|
utilization [必需]int32 | 利用率(x 轴)。合法值为 0 到 100。完全被利用的节点映射到 100。 |
score [必需]int32 | 分配给指定利用率的分值(y 轴)。合法值为 0 到 10。 |
ClientConnectionConfiguration
出现在:
ClientConnectionConfiguration 中包含用来构造客户端所需的细节。
字段 | 描述 |
---|---|
kubeconfig [必需]string | 此字段为指向 KubeConfig 文件的路径。 |
acceptContentTypes [必需]string |
|
contentType [必需]string |
|
qps [必需]float32 |
|
burst [必需]int32 |
|
DebuggingConfiguration
出现在:
DebuggingConfiguration 保存与调试功能相关的配置。
字段 | 描述 |
---|---|
enableProfiling [必需]bool | 此字段允许通过 Web 接口 host:port/debug/pprof/ 执行性能分析。 |
enableContentionProfiling [必需]bool | 此字段在 |
LeaderElectionConfiguration
出现在:
LeaderElectionConfiguration 为能够支持领导者选举的组件定义其领导者选举客户端的配置。
字段 | 描述 |
---|---|
leaderElect [必需]bool |
|
leaseDuration [必需]meta/v1.Duration |
|
renewDeadline [必需]meta/v1.Duration |
|
retryPeriod [必需]meta/v1.Duration |
|
resourceLock [必需]string | resourceLock 给出在领导者选举期间要作为锁来使用的资源对象类型。 |
resourceName [必需]string | resourceName 给出在领导者选举期间要作为锁来使用的资源对象名称。 |
resourceNamespace [必需]string | resourceNamespace 给出在领导者选举期间要作为锁来使用的资源对象所在名字空间。 |