kube-scheduler 配置 (v1)

资源类型

ClientConnectionConfiguration

出现于

ClientConnectionConfiguration 包含构建客户端的详细信息。

字段描述
kubeconfig [必填]
string

kubeconfig 是 KubeConfig 文件的路径。

acceptContentTypes [必填]
string

acceptContentTypes 定义了客户端连接到服务器时发送的 Accept 标头,覆盖了默认值 'application/json'。此字段将控制特定客户端使用的所有服务器连接。

contentType [必填]
string

contentType 是从该客户端向服务器发送数据时使用的内容类型。

qps [必填]
float32

qps 控制此连接允许的每秒查询数。

burst [必填]
int32

burst 允许在客户端超过其速率时积累额外的查询。

DebuggingConfiguration

出现于

DebuggingConfiguration 包含与调试相关的功能的配置。

字段描述
enableProfiling [必填]
bool

enableProfiling 通过 Web 界面 host:port/debug/pprof/ 启用分析。

enableContentionProfiling [必填]
bool

如果 enableProfiling 为真,则 enableContentionProfiling 启用阻塞分析。

LeaderElectionConfiguration

出现于

LeaderElectionConfiguration 定义了可以启用领导者选举运行的组件的领导者选举客户端的配置。

字段描述
leaderElect [必填]
bool

leaderElect 使领导者选举客户端能够在执行主循环之前获得领导地位。在运行复制组件以实现高可用性时启用此功能。

leaseDuration [必填]
meta/v1.Duration

leaseDuration 是非领导者候选人在观察到领导者续期后,在尝试获取已领导但未续期的领导者插槽的领导地位之前等待的持续时间。这实际上是领导者在被另一个候选人替换之前可以停止的最大持续时间。这仅适用于已启用领导者选举的情况。

renewDeadline [必填]
meta/v1.Duration

renewDeadline 是代理主服务器尝试续期领导者插槽之前停止领导的间隔时间。这必须小于或等于租约持续时间。这仅适用于已启用领导者选举的情况。

retryPeriod [必填]
meta/v1.Duration

retryPeriod 是客户端在尝试获取和续期领导者之间等待的持续时间。这仅适用于已启用领导者选举的情况。

resourceLock [必填]
string

resourceLock 指示在领导者选举周期中将用于锁定的资源对象类型。

resourceName [必填]
string

resourceName 指示将在领导者选举周期中用于锁定的资源对象的名称。

resourceNamespace [必填]
string

resourceName 指示将在领导者选举周期中用于锁定的资源对象的命名空间。

DefaultPreemptionArgs

DefaultPreemptionArgs 包含用于配置 DefaultPreemption 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
DefaultPreemptionArgs
minCandidateNodesPercentage [必填]
int32

MinCandidateNodesPercentage 是在模拟运行抢占时作为节点数量百分比来缩短候选人数量的最低数量。必须在 [0, 100] 范围内。如果未指定,则默认为集群大小的 10%。

minCandidateNodesAbsolute [必填]
int32

MinCandidateNodesAbsolute 是要缩短的候选人的绝对最低数量。模拟运行抢占时枚举的候选人数量很可能是由以下公式给出:numCandidates = max(numNodes * minCandidateNodesPercentage, minCandidateNodesAbsolute) 我们说“很可能是”是因为还有其他因素(例如 PDB 违规)在缩短的候选人数量中发挥作用。必须至少为 0 个节点。如果未指定,则默认为 100 个节点。

InterPodAffinityArgs

InterPodAffinityArgs 包含用于配置 InterPodAffinity 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
InterPodAffinityArgs
hardPodAffinityWeight [必填]
int32

HardPodAffinityWeight 是具有与传入 Pod 匹配的硬亲和性的现有 Pod 的评分权重。

ignorePreferredTermsOfExistingPods [必填]
bool

IgnorePreferredTermsOfExistingPods 配置调度程序忽略现有 Pod 的首选亲和性规则在对候选节点进行评分时的作用,除非传入 Pod 具有 Pod 间亲和性。

KubeSchedulerConfiguration

KubeSchedulerConfiguration 配置调度程序

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
KubeSchedulerConfiguration
parallelism [必填]
int32

Parallelism 定义了用于调度 Pod 的算法中的并行度。必须大于 0。默认为 16

leaderElection [必填]
LeaderElectionConfiguration

LeaderElection 定义了领导者选举客户端的配置。

clientConnection [必填]
ClientConnectionConfiguration

ClientConnection 指定代理服务器与 apiserver 通信时使用的 kubeconfig 文件和客户端连接设置。

DebuggingConfiguration [必填]
DebuggingConfiguration
(DebuggingConfiguration 的成员嵌入到此类型中。)

DebuggingConfiguration 包含与调试相关的功能的配置 TODO:我们可能希望将其设为子结构,如 Debugging componentbaseconfigv1alpha1.DebuggingConfiguration

percentageOfNodesToScore [必填]
int32

PercentageOfNodesToScore 是所有节点的百分比,一旦发现这些节点适合运行 Pod,调度程序就会停止在集群中搜索更多适合的节点。这有助于提高调度程序的性能。调度程序始终尝试找到至少“minFeasibleNodesToFind”个适合的节点,无论此标志的值是什么。例如:如果集群大小为 500 个节点,此标志的值为 30,则调度程序一旦找到 150 个适合的节点就会停止查找更多适合的节点。当值为 0 时,将评分节点的默认百分比(根据集群大小的 5%--50%)。它被配置文件级别的 PercentageofNodesToScore 覆盖。

podInitialBackoffSeconds [必填]
int64

PodInitialBackoffSeconds 是未调度 Pod 的初始回退。如果指定,它必须大于 0。如果此值为 null,则将使用默认值 (1s)。

podMaxBackoffSeconds [必填]
int64

PodMaxBackoffSeconds 是未调度 Pod 的最大回退。如果指定,它必须大于 podInitialBackoffSeconds。如果此值为 null,则将使用默认值 (10s)。

profiles [必填]
[]KubeSchedulerProfile

Profiles 是 kube-scheduler 支持的调度配置文件。Pod 可以选择在特定的配置文件下进行调度,方法是设置其关联的调度程序名称。如果存在,则未指定任何调度程序名称的 Pod 将使用“default-scheduler”配置文件进行调度。

extenders [必填]
[]Extender

Extenders 是调度程序扩展程序列表,每个扩展程序都包含如何与扩展程序通信的值。这些扩展程序由所有调度程序配置文件共享。

delayCacheUntilActive [必填]
bool

DelayCacheUntilActive 指定何时开始缓存。如果此值为 true 且启用了领导者选举,则调度程序将在成为领导者之前等待填充信息缓存。这样做将具有较慢的故障转移,但优点是在等待成为领导者时内存开销较低。默认为 false。

NodeAffinityArgs

NodeAffinityArgs 包含用于配置 NodeAffinity 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
NodeAffinityArgs
addedAffinity
core/v1.NodeAffinity

AddedAffinity 将应用于所有 Pod,除了 PodSpec 中指定的 NodeAffinity 之外。也就是说,节点需要满足 AddedAffinity 和 .spec.NodeAffinity。AddedAffinity 默认情况下为空(所有节点都匹配)。当使用 AddedAffinity 时,一些具有与特定节点匹配的亲和性要求的 Pod(例如 Daemonset Pod)可能会保持未调度状态。

NodeResourcesBalancedAllocationArgs

NodeResourcesBalancedAllocationArgs 包含用于配置 NodeResourcesBalancedAllocation 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
NodeResourcesBalancedAllocationArgs
resources [必填]
[]ResourceSpec

要管理的资源,如果未指定,则默认为“cpu”和“memory”。

NodeResourcesFitArgs

NodeResourcesFitArgs 包含用于配置 NodeResourcesFit 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
NodeResourcesFitArgs
ignoredResources [必填]
[]string

IgnoredResources 是 NodeResources 适合过滤器应该忽略的资源列表。这并不适用于评分。

ignoredResourceGroups [必填]
[]string

IgnoredResourceGroups 定义了 NodeResources 适合过滤器应该忽略的资源组列表。例如,如果组为 ["example.com"],它将忽略所有以“example.com”开头的资源名称,例如“example.com/aaa”和“example.com/bbb”。资源组名称不能包含“/”。这并不适用于评分。

scoringStrategy [必填]
ScoringStrategy

ScoringStrategy 选择节点资源评分策略。默认策略是 LeastAllocated,具有相等的“cpu”和“memory”权重。

PodTopologySpreadArgs

PodTopologySpreadArgs 包含用于配置 PodTopologySpread 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
PodTopologySpreadArgs
defaultConstraints
[]core/v1.TopologySpreadConstraint

DefaultConstraints 定义了要应用于未在pod.spec.topologySpreadConstraints中定义任何拓扑扩散约束的 Pod 的拓扑扩散约束。.defaultConstraints[*].labelSelectors 必须为空,因为它们是从 Pod 的服务、复制控制器、复制集或有状态集的成员资格推断出来的。当不为空时,.defaultingType 必须为“List”。

defaultingType
PodTopologySpreadConstraintsDefaulting

DefaultingType 确定如何推断 .defaultConstraints。可以是“System”或“List”之一。

  • "System": 使用 Kubernetes 定义的约束,这些约束将 Pod 分散在节点和区域之间。
  • "List": 使用 .defaultConstraints 中定义的约束。

默认为“System”。

VolumeBindingArgs

VolumeBindingArgs 包含用于配置 VolumeBinding 插件的参数。

字段描述
apiVersion
string
kubescheduler.config.k8s.io/v1
kind
string
VolumeBindingArgs
bindTimeoutSeconds [必填]
int64

BindTimeoutSeconds 是卷绑定操作的超时时间(以秒为单位)。值必须是非负整数。值为零表示不等待。如果此值为 nil,则将使用默认值 (600)。

shape
[]UtilizationShapePoint

Shape 指定定义评分函数形状的点,该形状用于根据静态配置的 PV 的利用率对节点进行评分。利用率是通过将 Pod 的总请求存储空间除以每个节点上可行 PV 的总容量来计算的。每个点都包含利用率(范围从 0 到 100)及其关联的评分(范围从 0 到 10)。您可以通过为不同的利用率数字指定不同的评分来调整优先级。默认形状点是

  1. 0 表示 0 利用率
  2. 10 表示 100 利用率 所有点必须按利用率的升序排列。

Extender

出现于

Extender 包含用于与扩展程序通信的参数。如果动词未指定/为空,则假定扩展程序选择不提供该扩展。

字段描述
urlPrefix [必填]
string

扩展器可用的 URL 前缀

filterVerb [必填]
string

过滤器的调用动词,如果扩展器不支持则为空。 此动词将在向扩展器发出过滤器调用时追加到 URL 前缀。

preemptVerb [必填]
string

抢占调用的动词,如果扩展器不支持则为空。 此动词将在向扩展器发出抢占调用时追加到 URL 前缀。

prioritizeVerb [必填]
string

优先级调用的动词,如果扩展器不支持则为空。 此动词将在向扩展器发出优先级调用时追加到 URL 前缀。

weight [必填]
int64

优先级调用生成的节点分数的数值乘数。 权重应为正整数

bindVerb [必填]
string

绑定调用的动词,如果扩展器不支持则为空。 此动词将在向扩展器发出绑定调用时追加到 URL 前缀。 如果扩展器实现了此方法,则扩展器有责任将 Pod 绑定到 apiserver。 只有一个扩展器可以实现此功能。

enableHTTPS [必填]
bool

EnableHTTPS 指定是否应使用 https 与扩展器通信

tlsConfig [必填]
ExtenderTLSConfig

TLSConfig 指定传输层安全配置

httpTimeout [必填]
meta/v1.Duration

HTTPTimeout 指定对扩展器的调用的超时持续时间。 过滤器超时会导致 Pod 的调度失败。 优先级超时将被忽略,将使用 k8s/其他扩展器的优先级来选择节点。

nodeCacheCapable [必填]
bool

NodeCacheCapable 指定扩展器是否能够缓存节点信息,因此调度器应该只发送关于合格节点的最小信息,假设扩展器已经缓存了集群中所有节点的完整详细信息

managedResources
[]ExtenderManagedResource

ManagedResources 是此扩展器管理的扩展资源的列表。

  • 只有当 Pod 请求此列表中的至少一个扩展资源时,才会在过滤、优先级和绑定(如果扩展器是绑定器)阶段将 Pod 发送到扩展器。 如果为空或未指定,则所有 Pod 都将发送到此扩展器。
  • 如果资源的 IgnoredByScheduler 设置为 true,kube-scheduler 将跳过在谓词中检查该资源。
ignorable [必填]
bool

Ignorable 指定扩展器是否可以忽略,即当扩展器返回错误或不可达时,调度不应该失败。

ExtenderManagedResource

出现于

ExtenderManagedResource 描述扩展器管理的扩展资源的参数。

字段描述
name [必填]
string

Name 是扩展资源名称。

ignoredByScheduler [必填]
bool

IgnoredByScheduler 指示 kube-scheduler 是否应该在应用谓词时忽略此资源。

ExtenderTLSConfig

出现于

ExtenderTLSConfig 包含用于启用与扩展器使用 TLS 的设置

字段描述
insecure [必填]
bool

应在不验证 TLS 证书的情况下访问服务器。 仅用于测试。

serverName [必填]
string

ServerName 传递给服务器以用于 SNI,并在客户端中用于根据 ServerName 检查服务器证书。 如果 ServerName 为空,则使用用于联系服务器的主机名。

certFile [必填]
string

服务器需要 TLS 客户端证书身份验证

keyFile [必填]
string

服务器需要 TLS 客户端证书身份验证

caFile [必填]
string

服务器的受信任根证书

certData [必填]
[]byte

CertData 包含 PEM 编码的字节(通常从客户端证书文件读取)。 CertData 优先于 CertFile

keyData [必填]
[]byte

KeyData 包含 PEM 编码的字节(通常从客户端证书密钥文件读取)。 KeyData 优先于 KeyFile

caData [必填]
[]byte

CAData 包含 PEM 编码的字节(通常从根证书捆绑包读取)。 CAData 优先于 CAFile

KubeSchedulerProfile

出现于

KubeSchedulerProfile 是一个调度配置文件。

字段描述
schedulerName [必填]
string

SchedulerName 是与此配置文件关联的调度器的名称。 如果 SchedulerName 与 Pod 的“spec.schedulerName”匹配,则使用此配置文件调度 Pod。

percentageOfNodesToScore [必填]
int32

PercentageOfNodesToScore 是所有节点的百分比,一旦发现这些节点适合运行 Pod,调度器就会停止在集群中搜索更多适合的节点。 这有助于提高调度器的性能。 调度器始终尝试找到至少“minFeasibleNodesToFind”个适合的节点,无论此标志的值是什么。 例如:如果集群大小为 500 个节点,而此标志的值为 30,那么调度器一旦找到 150 个适合的节点就会停止查找更多适合的节点。 当值为 0 时,将使用默认百分比(根据集群大小为 5%--50%)的节点进行评分。 它将覆盖全局 PercentageOfNodesToScore。 如果它为空,将使用全局 PercentageOfNodesToScore。

plugins [必填]
Plugins

Plugins 指定应启用或禁用的插件集。 启用的插件是应在默认插件之外启用的插件。 禁用的插件是应禁用的任何默认插件。 当没有为扩展点指定启用或禁用的插件时,如果存在,将使用该扩展点的默认插件。 如果指定了 QueueSort 插件,则必须为所有配置文件指定相同的 QueueSort 插件和 PluginConfig。

pluginConfig [必填]
[]PluginConfig

PluginConfig 是每个插件的一组可选的自定义插件参数。 省略插件的配置参数等同于使用该插件的默认配置。

Plugin

出现于

Plugin 指定插件名称及其权重(如果适用)。 权重仅用于 Score 插件。

字段描述
name [必填]
string

Name 定义插件的名称

weight [必填]
int32

Weight 定义插件的权重,仅用于 Score 插件。

PluginConfig

出现于

PluginConfig 指定在初始化时应传递给插件的参数。 在多个扩展点调用的插件将被初始化一次。 Args 可以具有任意结构。 由插件负责处理这些 Args。

字段描述
name [必填]
string

Name 定义正在配置的插件的名称

args [必填]
k8s.io/apimachinery/pkg/runtime.RawExtension

Args 定义在初始化时传递给插件的参数。 Args 可以具有任意结构。

PluginSet

出现于

PluginSet 指定扩展点的启用和禁用插件。 如果数组为空、缺失或为 nil,则将使用该扩展点的默认插件。

字段描述
enabled [必填]
[]Plugin

Enabled 指定应在默认插件之外启用的插件。 如果在调度器配置文件中也配置了默认插件,则插件的权重将相应地被覆盖。 这些插件在默认插件之后调用,并按此处指定的相同顺序调用。

disabled [必填]
[]Plugin

Disabled 指定应禁用的默认插件。 当需要禁用所有默认插件时,应提供一个只包含一个 "*" 的数组。

Plugins

出现于

Plugins 包括多个扩展点。 当指定时,特定扩展点的插件列表是唯一启用的插件。 如果从配置中省略了扩展点,则将使用该扩展点的默认插件集。 启用的插件按此处指定的顺序调用,在默认插件之后调用。 如果需要在默认插件之前调用它们,则必须禁用默认插件并在此处按所需顺序重新启用它们。

字段描述
preEnqueue [必填]
PluginSet

PreEnqueue 是应在将 Pod 添加到调度队列之前调用的插件列表。

queueSort [必填]
PluginSet

QueueSort 是应在调度队列中对 Pod 进行排序时调用的插件列表。

preFilter [必填]
PluginSet

PreFilter 是应在调度框架的“PreFilter”扩展点处调用的插件列表。

filter [必填]
PluginSet

Filter 是应在过滤掉无法运行 Pod 的节点时调用的插件列表。

postFilter [必填]
PluginSet

PostFilter 是在过滤阶段之后调用的插件列表,但仅在没有找到适合 Pod 的节点时调用。

preScore [必填]
PluginSet

PreScore 是在评分之前调用的插件列表。

score [必填]
PluginSet

Score 是应在对通过过滤阶段的节点进行排名时调用的插件列表。

reserve [必填]
PluginSet

Reserve 是在为节点分配运行 Pod 后保留/取消保留资源时调用的插件列表。

permit [必填]
PluginSet

Permit 是控制 Pod 绑定的插件列表。 这些插件可以阻止或延迟 Pod 的绑定。

preBind [必填]
PluginSet

PreBind 是应在 Pod 绑定之前调用的插件列表。

bind [必填]
PluginSet

Bind 是应在调度框架的“Bind”扩展点处调用的插件列表。 调度器按顺序调用这些插件。 调度器一旦有一个插件返回成功,就会跳过这些插件的其余部分。

postBind [必填]
PluginSet

PostBind 是应在 Pod 成功绑定后调用的插件列表。

multiPoint [必填]
PluginSet

MultiPoint 是一个简化的配置部分,用于为所有有效的扩展点启用插件。 通过 MultiPoint 启用的插件将自动为插件已实现的每个单独的扩展点注册。 通过 MultiPoint 禁用插件将禁用该行为。 对通过 MultiPoint 禁用 "*" 也是如此(不会自动注册任何默认插件)。 仍然可以通过它们的单独扩展点禁用插件。

就优先级而言,插件配置遵循以下基本层次结构

  1. 特定扩展点
  2. 显式配置的 MultiPoint 插件
  3. 默认插件集,作为 MultiPoint 插件 这意味着优先级更高的插件将首先运行,并覆盖 MultiPoint 中的任何设置。 显式用户配置的插件也比默认插件优先级更高。 在此层次结构中,Enabled 设置优先于 Disabled。 例如,如果插件在 multiPoint.EnabledmultiPoint.Disabled 中都设置了,则该插件将被启用。 同样,包括 multiPoint.Disabled = '*'multiPoint.Enabled = pluginA 仍然会通过 MultiPoint 注册该特定插件。 这遵循与所有其他扩展点配置相同的方式。

PodTopologySpreadConstraintsDefaulting

(string 的别名)

出现于

PodTopologySpreadConstraintsDefaulting 定义如何为 PodTopologySpread 插件设置默认约束。

RequestedToCapacityRatioParam

出现于

RequestedToCapacityRatioParam 定义 RequestedToCapacityRatio 参数

字段描述
shape [必填]
[]UtilizationShapePoint

Shape 是定义评分函数形状的点列表。

ResourceSpec

出现于

ResourceSpec 表示单个资源。

字段描述
name [必填]
string

资源的名称。

weight [必填]
int64

资源的权重。

ScoringStrategy

出现于

ScoringStrategy 定义节点资源插件的 ScoringStrategyType

字段描述
type [必填]
ScoringStrategyType

Type 选择要运行的策略。

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。

此页面是自动生成的。

如果您计划报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。 修复可能需要在 Kubernetes 项目中的其他地方进行。

上次修改于 2024 年 4 月 18 日 下午 7:57 PST: v1.30 的 Config API 参考 (6fa7b80ae3)