kube-scheduler 配置 (v1beta2)
- DefaultPreemptionArgs
- KubeSchedulerConfiguration
- NodeResourcesBalancedAllocationArgs
- PodTopologySpreadArgs
DefaultPreemptionArgs
InterPodAffinityArgs
InterPodAffinityArgs 包含用来配置 InterPodAffinity 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | InterPodAffinityArgs |
hardPodAffinityWeight [必需]int32 | 此字段是一个计分权重值。针对新增的 Pod,要对现存的、带有与新 Pod 匹配的 硬性亲和性设置的 Pod 计算亲和性得分。 |
KubeSchedulerConfiguration
KubeSchedulerConfiguration 用来配置调度器。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | KubeSchedulerConfiguration |
parallelism [必需]int32 | 此字段设置为调度 Pod 而执行算法时的并发度。此值必须大于 0。 默认值为 16。 |
leaderElection [必需] | 此字段用来定义领导者选举客户端的配置。 |
clientConnection [必需]ClientConnectionConfiguration | 此字段为与 API 服务器通信时使用的代理服务器设置 kubeconfig 文件和客户端 连接配置。 |
healthzBindAddress [必需]string | healthzBindAddress 是健康检查服务器提供服务所用的 IP 地址和端口。 注意:healthzBindAddress 和 metricsBindAddress 这两个字段都已被弃用。 只可以设置空地址或者端口 0。其他设置值都无法通过合法性检查。 |
metricsBindAddress [必需]string | metricsBindAddress 是度量值服务器提供服务所用的 IP 地址和端口。 |
DebuggingConfiguration [必需] | (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)的列表,每个元素包含如何与某扩展模块 通信的配置信息。所有调度器模仿会共享此扩展模块列表。 |
NodeAffinityArgs
NodeAffinityArgs 中包含配置 NodeAffinity 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | NodeAffinityArgs |
addedAffinity | addedAffinity 会作为附加的亲和性属性添加到所有 Pod 的 规约中指定的 NodeAffinity 中。换言之,节点需要同时满足 addedAffinity 和 .spec.nodeAffinity。默认情况下,addedAffinity 为空(与所有节点匹配)。 使用了 addedAffinity 时,某些带有已经能够与某特定节点匹配的亲和性需求 的 Pod (例如 DaemonSet Pod)可能会继续呈现不可调度状态。 |
NodeResourcesBalancedAllocationArgs
NodeResourcesBalancedAllocationArgs 包含用来配置 NodeResourcesBalancedAllocation 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | NodeResourcesBalancedAllocationArgs |
resources [必需] | 要管理的资源;如果未设置,则默认值为 “cpu” 和 “memory”。 |
NodeResourcesFitArgs
NodeResourcesFitArgs 包含用来配置 NodeResourcesFit 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | NodeResourcesFitArgs |
ignoredResources [必需][]string | 此字段为 NodeResources 匹配过滤器要忽略的资源列表。此列表不影响节点打分。 |
ignoredResourceGroups [必需][]string | 此字段定义 NodeResources 匹配过滤器要忽略的资源组列表。 例如,如果配置值为 [“example.com”],则以 “example.com” 开头的资源名(如 “example.com/aaa” 和 “example.com/bbb”)都会被忽略。 资源组名称中不可以包含 ‘/‘。此设置不影响节点的打分。 |
scoringStrategy [必需] | 此字段用来选择节点资源打分策略。默认的策略为 LeastAllocated,且 “cpu” 和 “memory” 的权重相同。 |
PodTopologySpreadArgs
PodTopologySpreadArgs 包含用来配置 PodTopologySpread 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | |
kind string | PodTopologySpreadArgs |
defaultConstraints | 此字段针对未定义 .spec.topologySpreadConstraints 的 Pod, 为其提供拓扑分布约束。.defaultConstraints[∗].labelSelectors 必须为空,因为这一信息要从 Pod 所属的 Service、ReplicationController、 ReplicaSet 或 StatefulSet 来推导。 此字段不为空时,.defaultingType 必须为 “List”。 |
defaultingType PodTopologySpreadConstraintsDefaulting |
当特性门控 DefaultPodTopologySpread 被禁用时,默认值为 “list”;反之,默认值为 “System”。 |
VolumeBindingArgs
VolumeBindingArgs 包含用来配置 VolumeBinding 插件的参数。
字段 | 描述 |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1beta2 |
kind string | VolumeBindingArgs |
bindTimeoutSeconds [必需]int64 | 此字段设置卷绑定操作的超时秒数。字段值必须是非负数。 取值为 0 意味着不等待。如果此值为 null,则使用默认值(600)。 |
shape []UtilizationShapePoint |
默认的曲线计分点为:
所有计分点必须按利用率值的升序来排序。 |
出现在:
Extender 包含与扩展模块(Extender)通信所用的参数。 如果未指定 verb 或者 verb 为空,则假定对应的扩展模块选择不提供该扩展功能。
ExtenderManagedResource
出现在:
ExtenderManagedResource 描述某扩展模块所管理的扩展资源的参数。
字段 | 描述 |
---|---|
name [必需]string | 扩展资源的名称。 |
ignoredByScheduler [必需]bool | 此字段标明 kube-scheduler 是否应在应用断言时忽略此资源。 |
ExtenderTLSConfig
出现在:
字段 | 描述 |
---|---|
insecure [必需]bool | 访问服务器时不需要检查 TLS 证书。此配置仅针对测试用途。 |
serverName [必需]string | serverName 会被发送到服务器端,作为 SNI 标志;客户端会使用 此设置来检查服务器证书。如果 serverName 为空,则会使用联系 服务器时所用的主机名。 |
certFile [必需]string | 服务器端所要求的 TLS 客户端证书认证。 |
keyFile [必需]string | 服务器端所要求的 TLS 客户端秘钥认证。 |
caFile [必需]string | 服务器端可信任的根证书。 |
certData [必需][]byte | certData 包含 PEM 编码的字节流(通常从某客户端证书文件读入)。 此字段优先级高于 certFile 字段。 |
keyData [必需][]byte | keyData 包含 PEM 编码的字节流(通常从某客户端证书秘钥文件读入)。 此字段优先级高于 keyFile 字段。 |
caData [必需][]byte | caData 包含 PEM 编码的字节流(通常从某根证书包文件读入)。 此字段优先级高于 caFile 字段。 |
KubeSchedulerProfile
出现在:
KubeSchedulerProfile 是一个调度方案。
字段 | 描述 |
---|---|
schedulerName [必需]string | schedulerName 是与此调度方案相关联的调度器的名称。 如果 schedulerName 与 Pod 的 spec.schedulerName 匹配,则该 Pod 会使用此方案来调度。 |
plugins [必需] |
如果针对某个扩展点没有设置被启用或被禁止的插件,则使用该扩展点 的默认插件(如果有的话)。如果设置了 QueueSort 插件,则同一个 QueueSort 插件和 |
pluginConfig [必需][]PluginConfig | pluginConfig 是为每个插件提供的一组可选的定制插件参数。 如果忽略了插件的配置参数,则意味着使用该插件的默认配置。 |
Plugin
出现在:
Plugin 指定插件的名称及其权重(如果适用的话)。权重仅用于评分(Score)插件。
字段 | 描述 |
---|---|
name [必需]string | 插件的名称。 |
weight [必需]int32 | 插件的权重;仅适用于评分(Score)插件。 |
PluginConfig
出现在:
PluginConfig 给出初始化阶段要传递给插件的参数。 在多个扩展点被调用的插件仅会被初始化一次。 参数可以是任意结构。插件负责处理这里所传的参数。
字段 | 描述 |
---|---|
name [必需]string | name 是所配置的插件的名称。 |
args [必需] | args 定义在初始化阶段要传递给插件的参数。参数可以为任意结构。 |
PluginSet
出现在:
PluginSet 为某扩展点设置要启用或禁用的插件。 如果数组为空,或者取值为 null,则使用该扩展点的默认插件集合。
字段 | 描述 |
---|---|
enabled [必需][]Plugin | enabled 设置在默认插件之外要启用的插件。如果在调度器的配置 文件中也配置了默认插件,则对应插件的权重会被覆盖。 此处所设置的插件会在默认插件之后被调用,调用顺序与数组中元素顺序相同。 |
[必需] | disabled 设置要被禁用的默认插件。 如果需要禁用所有的默认插件,应该提供仅包含一个元素 “∗” 的数组。 |
Plugins
出现在:
Plugins 结构中包含多个扩展点。当此结构被设置时,针对特定扩展点所启用 的所有插件都在这一列表中。 如果配置中不包含某个扩展点,则使用该扩展点的默认插件集合。 被启用的插件的调用顺序与这里指定的顺序相同,都在默认插件之后调用。 如果它们需要在默认插件之前调用,则需要先行禁止默认插件,之后在这里 按期望的顺序重新启用。
字段 | 描述 |
---|---|
queueSort [必需]PluginSet | queueSort 是一个在对调度队列中 Pod 排序时要调用的插件列表。 |
preFilter [必需] | preFilter 是一个在调度框架中“PreFilter(预过滤)”扩展点上要 调用的插件列表。 |
filter [必需]PluginSet | filter 是一个在需要过滤掉无法运行 Pod 的节点时被调用的插件列表。 |
postFilter [必需] | postFilter 是一个在过滤阶段结束后会被调用的插件列表; 这里的插件只有在找不到合适的节点来运行 Pod 时才会被调用。 |
preScore [必需]PluginSet | preScore 是一个在打分之前要调用的插件列表。 |
score [必需] | score 是一个在对已经通过过滤阶段的节点进行排序时调用的插件的列表。 |
reserve [必需]PluginSet | reserve 是一组在运行 Pod 的节点已被选定后,需要预留或者释放资源时调用的插件的列表。 |
permit [必需] | permit 是一个用来控制 Pod 绑定关系的插件列表。这些插件可以 禁止或者延迟 Pod 的绑定。 |
preBind [必需]PluginSet | preBind 是一个在 Pod 被绑定到某节点之前要被调用的插件的列表。 |
bind [必需] | bind 是一个在调度框架中“Bind(绑定)”扩展点上要调用的 插件的列表。调度器按顺序调用这些插件。只要其中某个插件返回成功,则调度器 就略过余下的插件。 |
postBind [必需]PluginSet | postBind 是一个在 Pod 已经被成功绑定之后要调用的插件的列表。 |
multiPoint [必需] |
|
PodTopologySpreadConstraintsDefaulting
(string
类型的别名)
出现在:
PodTopologySpreadConstraintsDefaulting 定义如何为 PodTopologySpread 插件 设置默认的约束。
出现在:
RequestedToCapacityRatioParam 结构定义 RequestedToCapacityRatio 的参数。
ResourceSpec
出现在:
ResourceSpec 用来代表某个资源。
字段 | 描述 |
---|---|
name [必需]string | 资源名称。 |
weight [必需]int64 | 资源权重。 |
ScoringStrategy
出现在:
字段 | 描述 |
---|---|
type [必需]ScoringStrategyType | type 用来选择要运行的策略。 |
resources [必需] |
默认的资源集合包含 “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 | acceptContentTypes 定义的是客户端与服务器建立连接时要发送的 Accept 头部;这里的设置值会覆盖默认值 “application/json”。 此字段会影响某特定客户端与服务器的所有连接。 |
contentType [必需]string | contentType 包含的是此客户端向服务器发送数据时使用的 内容类型(Content Type)。 |
qps [必需]float32 | qps 控制的是此连接上每秒可以发送的查询个数。 |
burst [必需]int32 | burst 允许在客户端超出其速率限制时可以累积的额外查询个数。 |
DebuggingConfiguration
出现在:
DebuggingConfiguration 保存与调试功能相关的配置。
字段 | 描述 |
---|---|
enableProfiling [必需]bool | 此字段允许通过 Web 接口 host:port/debug/pprof/ 执行性能分析。 |
enableContentionProfiling [必需]bool | 此字段在 enableProfiling 为 true 时允许执行锁竞争分析。 |
FormatOptions
FormatOptions 中包含不同日志格式的配置选项。
字段 | 描述 |
---|---|
json [必需] | [实验特性] json 字段包含为 “json” 日志格式提供的配置选项。 |
JSONOptions
出现在:
JSONOptions 包含为 “json” 日志格式所设置的配置选项。
字段 | 描述 |
---|---|
splitStream [必需]bool | [实验特性] 此字段将错误信息重定向到标准错误输出(stderr),将提示消息 重定向到标准输出(stdout),并且支持缓存。默认配置为将二者都输出到 标准输出(stdout),且不提供缓存。 |
infoBufferSize [必需]k8s.io/apimachinery/pkg/api/resource.QuantityValue | [实验特性] infoBufferSize 用来在分离数据流场景是设置提示 信息数据流的大小。默认值为 0,意味着禁止缓存。 |
出现在:
LeaderElectionConfiguration 为能够支持领导者选举的组件定义其领导者选举 客户端的配置。
VModuleConfiguration
( 的别名)
VModuleConfiguration 是一组文件名(通配符)及其对应的日志详尽程度阈值。
最后修改 December 18, 2021 at 4:00 PM PST: [zh] Translate kube-scheduler config API v1beta2 (3d1ca8c16)