kube-scheduler 配置 (v1)
资源类型
- DefaultPreemptionArgs
- DynamicResourcesArgs
- InterPodAffinityArgs
- KubeSchedulerConfiguration
- NodeAffinityArgs
- NodeResourcesBalancedAllocationArgs
- NodeResourcesFitArgs
- PodTopologySpreadArgs
- VolumeBindingArgs
ClientConnectionConfiguration    
出现在:
ClientConnectionConfiguration 中包含用来构造客户端所需的细节。
| 字段 | 描述 | 
|---|---|
| kubeconfig[必需]string | 
 | 
| acceptContentTypes[必需]string | 
   
    | 
| contentType[必需]string | 
    | 
| qps[必需]float32 | 
 | 
| burst[必需]int32 | 
 | 
DebuggingConfiguration    
出现在:
DebuggingConfiguration 包含与调试功能相关的配置。
| 字段 | 描述 | 
|---|---|
| enableProfiling[必需]bool | 
 | 
| enableContentionProfiling[必需]bool | 
 | 
LeaderElectionConfiguration    
出现在:
LeaderElectionConfiguration 为能够支持领导者选举的组件定义其领导者选举客户端的配置。
| 字段 | 描述 | 
|---|---|
| leaderElect[必需]bool | 
    | 
| leaseDuration[必需]meta/v1.Duration | 
    | 
| renewDeadline[必需]meta/v1.Duration | 
    | 
| retryPeriod[Required[必需]meta/v1.Duration | 
    | 
| resourceLock[必需]string | 
 | 
| resourceName[必需]string | 
 | 
| resourceNamespace[必需]string | 
 | 
DefaultPreemptionArgs    
DefaultPreemptionArgs 包含用来配置 DefaultPreemption 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | DefaultPreemptionArgs | 
| minCandidateNodesPercentage[必需]int32 | 
 | 
| minCandidateNodesAbsolute[必需]int32 | 
 | 
DynamicResourcesArgs    
DynamicResourcesArgs 封装了用来配置 DynamicResources 插件的参数。
| Field | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | DynamicResourcesArgs | 
| filterTimeout必需meta/v1.Duration | 
 在典型场景中,此操作应在 10 到 200 毫秒内完成, 但根据每个 ResourceClaim 的请求数量、ResourceClaim 的数量、 ResourceSlices 中发布的设备数量以及请求的复杂性,也可能需要更长时间。 除了 CEL 评估之外的其他检查(使用情况检查、匹配属性等)也需要时间。 因此,调度器插件应用了此超时。如果达到超时, Pod 将被视为无法调度到该节点。 如果其他一些节点的过滤成功,那么这些节点将被选中。 如果所有节点的过滤都失败,Pod 将被放入无法调度队列。 如果有变化(例如 ResourceSlices 或 ResourceClaims 的变化) 表明另一次调度尝试可能会成功,则会再次检查它。 如果这反复失败,指数退避机制将减慢未来的尝试。 
默认是 10 秒。
这足以防止最坏的情况发生,而不会影响 DRA 的正常使用。
然而,缓慢的过滤也会减慢不使用 DRA 的 Pod 的调度。
管理员可以在检查
 将其设置为零将完全禁用超时。 | 
InterPodAffinityArgs    
InterPodAffinityArgs 包含用来配置 InterPodAffinity 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | InterPodAffinityArgs | 
| hardPodAffinityWeight[必需]int32 | 
 | 
| ignorePreferredTermsOfExistingPods[必需]bool | ignorePreferredTermsOfExistingPods 配置调度器在为候选节点评分时忽略现有 Pod 的优选亲和性规则, 除非传入的 Pod 具有 Pod 间的亲和性。 | 
KubeSchedulerConfiguration    
KubeSchedulerConfiguration 用来配置调度器。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | KubeSchedulerConfiguration | 
| parallelism[必需]int32 | 
    | 
| leaderElection[必需]LeaderElectionConfiguration | LeaderElection 字段用来定义领导者选举客户端的配置。 | 
| clientConnection[必需]ClientConnectionConfiguration | 
 | 
| DebuggingConfiguration[必需]DebuggingConfiguration | ( DebuggingConfiguration的成员被内嵌到此类型中)
 | 
| percentageOfNodesToScore[必需]int32 | 
   
    | 
| podInitialBackoffSeconds[必需]int64 | 
   
    | 
| podMaxBackoffSeconds[必需]int64 | 
 | 
| profiles[必需][]KubeSchedulerProfile | 
    | 
| extenders[必需][]Extender | 
 | 
| delayCacheUntilActive[必需]bool | DelayCacheUntilActive 指定何时开始缓存。如果字段设置为 true 并且启用了领导者选举, 则调度程序将等待填充通知者缓存,直到它成为领导者,这样做会减慢故障转移速度, 并在等待成为领导者时降低内存开销。 默认为 false。 | 
NodeAffinityArgs    
NodeAffinityArgs 中包含配置 NodeAffinity 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | NodeAffinityArgs | 
| addedAffinitycore/v1.NodeAffinity | 
    | 
NodeResourcesBalancedAllocationArgs    
NodeResourcesBalancedAllocationArgs 包含用来配置 NodeResourcesBalancedAllocation 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | NodeResourcesBalancedAllocationArgs | 
| resources[必需][]ResourceSpec | 要管理的资源;如果未设置,则默认值为 "cpu" 和 "memory"。 | 
NodeResourcesFitArgs    
NodeResourcesFitArgs 包含用来配置 NodeResourcesFit 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | NodeResourcesFitArgs | 
| ignoredResources[必需][]string | 
 | 
| ignoredResourceGroups[必需][]string | 
 | 
| scoringStrategy[必需]ScoringStrategy | 
 | 
PodTopologySpreadArgs    
PodTopologySpreadArgs 包含用来配置 PodTopologySpread 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | PodTopologySpreadArgs | 
| defaultConstraints[]core/v1.TopologySpreadConstraint | 
 | 
| defaultingTypePodTopologySpreadConstraintsDefaulting | 
 
 默认值为 "System"。 | 
VolumeBindingArgs    
VolumeBindingArgs 包含用来配置 VolumeBinding 插件的参数。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | kubescheduler.config.k8s.io/v1 | 
| kindstring | VolumeBindingArgs | 
| bindTimeoutSeconds[必需]int64 | 
 | 
| shape[]UtilizationShapePoint | 
 默认的曲线计分点为: 
 所有计分点必须按利用率值的升序来排序。 | 
Extender    
出现在:
Extender 包含与扩展模块(Extender)通信所用的参数。 如果未指定 verb 或者 verb 为空,则假定对应的扩展模块选择不提供该扩展功能。
| 字段 | 描述 | 
|---|---|
| urlPrefix[必需]string | 用来访问扩展模块的 URL 前缀。 | 
| filterVerb[必需]string | filter 调用所使用的动词,如果不支持过滤操作则为空。 此动词会在向扩展模块发送 filter 调用时追加到 urlPrefix 后面。 | 
| preemptVerb[必需]string | preempt 调用所使用的动词,如果不支持 preempt 操作则为空。 此动词会在向扩展模块发送 preempt 调用时追加到 urlPrefix 后面。 | 
| prioritizeVerb[必需]string | prioritize 调用所使用的动词,如果不支持 prioritize 操作则为空。 此动词会在向扩展模块发送 prioritize 调用时追加到 urlPrefix 后面。 | 
| weight[必需]int64 | 针对 prioritize 调用所生成的节点分数要使用的数值系数。 weight 值必须是正整数。 | 
| bindVerb[必需]string | bind 调用所使用的动词,如果不支持 bind 操作则为空。 此动词会在向扩展模块发送 bind 调用时追加到 urlPrefix 后面。 如果扩展模块实现了此方法,扩展模块要负责将 Pod 绑定到 API 服务器。 只有一个扩展模块可以实现此函数。 | 
| enableHTTPS[必需]bool | 
 | 
| tlsConfig[必需]ExtenderTLSConfig | 
 | 
| httpTimeout[必需]meta/v1.Duration | 
 | 
| nodeCacheCapable[必需]bool | 
 | 
| managedResources[]ExtenderManagedResource | 
 
 | 
| ignorable[必需]bool | 
 | 
ExtenderManagedResource    
出现在:
ExtenderManagedResource 描述某扩展模块所管理的扩展资源的参数。
| 字段 | 描述 | 
|---|---|
| name[必需]string | 扩展资源的名称。 | 
| ignoredByScheduler[必需]bool | 
 | 
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 | 
 | 
| percentageOfNodesToScore[必需]int32 | percentageOfNodesToScore 是已发现可运行 Pod 的节点与所有节点的百分比, 调度器所发现的可行节点到达此阈值时,将停止在集群中继续搜索可行节点。 这有助于提高调度器的性能。无论此标志的值是多少,调度器总是尝试至少找到 “minFeasibleNodesToFind” 个可行的节点。 例如:如果集群大小为 500 个节点并且此标志的值为 30,则调度器在找到 150 个可行节点后将停止寻找更多可行的节点。 当值为 0 时,默认百分比(根据集群大小为 5% - 50%)的节点将被评分。此设置值将覆盖全局的 PercentageOfNodesToScore 值。 如果为空,将使用全局 PercentageOfNodesToScore。 | 
| 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 | 
 |