kube-scheduler 配置 (v1)
资源类型
- DefaultPreemptionArgs
- InterPodAffinityArgs
- KubeSchedulerConfiguration
- NodeAffinityArgs
- NodeResourcesBalancedAllocationArgs
- NodeResourcesFitArgs
- PodTopologySpreadArgs
- VolumeBindingArgs
ClientConnectionConfiguration
出现于
ClientConnectionConfiguration 包含用于构建客户端的详细信息。
| 字段 | 描述 |
|---|---|
kubeconfig [必填]字符串 | kubeconfig 是 KubeConfig 文件的路径。 |
acceptContentTypes [必填]字符串 | acceptContentTypes 定义了客户端在连接到服务器时发送的 Accept 标头,覆盖默认值“application/json”。此字段将控制特定客户端使用的所有服务器连接。 |
contentType [必填]字符串 | contentType 是从此客户端向服务器发送数据时使用的内容类型。 |
qps [必填]float32 | qps 控制此连接每秒允许的查询数。 |
burst [必填]int32 | 当客户端超过其速率时,burst 允许累积额外的查询。 |
DebuggingConfiguration
出现于
DebuggingConfiguration 保存与调试相关的功能的配置。
| 字段 | 描述 |
|---|---|
enableProfiling [必填]布尔值 | enableProfiling 通过 Web 界面 host:port/debug/pprof/ 启用分析。 |
enableContentionProfiling [必填]布尔值 | 如果 enableProfiling 为 true,则 enableContentionProfiling 启用块分析。 |
LeaderElectionConfiguration
出现于
LeaderElectionConfiguration 定义了可以启用领导者选举的组件的领导者选举客户端的配置。
| 字段 | 描述 |
|---|---|
leaderElect [必填]布尔值 | leaderElect 使领导者选举客户端能够在执行主循环之前获得领导权。在运行复制组件以实现高可用性时启用此功能。 |
leaseDuration [必填]meta/v1.Duration | leaseDuration 是非领导者候选者在观察到领导权续约后,在尝试获取领导但未续约的领导者位置的领导权之前将等待的持续时间。这实际上是领导者被替换之前可以停止的最长时间。这仅在启用领导者选举时适用。 |
renewDeadline [必填]meta/v1.Duration | renewDeadline 是代理主服务器尝试续订领导者位置之前的间隔时间,直到它停止领导。这必须小于或等于租约期限。这仅在启用领导者选举时适用。 |
retryPeriod [必填]meta/v1.Duration | retryPeriod 是客户端在尝试获取和续订领导权之间应该等待的持续时间。这仅在启用领导者选举时适用。 |
resourceLock [必填]字符串 | resourceLock 指示在领导者选举周期内将用于锁定的资源对象类型。 |
resourceName [必填]字符串 | resourceName 指示在领导者选举周期内将用于锁定的资源对象的名称。 |
resourceNamespace [必填]字符串 | resourceName 指示在领导者选举周期内将用于锁定的资源对象的命名空间。 |
DefaultPreemptionArgs
DefaultPreemptionArgs 保存用于配置 DefaultPreemption 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | DefaultPreemptionArgs |
minCandidateNodesPercentage [必填]int32 | MinCandidateNodesPercentage 是在将抢占作为节点数量的百分比进行空运行时要列入候选名单的最小候选数量。必须在 [0, 100] 范围内。如果未指定,则默认为集群大小的 10%。 |
minCandidateNodesAbsolute [必填]int32 | MinCandidateNodesAbsolute 是要列入候选名单的绝对最小候选数量。用于空运行抢占的枚举候选数量的可能数量由以下公式给出:numCandidates = max(numNodes * minCandidateNodesPercentage, minCandidateNodesAbsolute) 我们说“可能”是因为还有其他因素,例如 PDB 违规,这些因素在列入候选名单的数量中起作用。必须至少为 0 个节点。如果未指定,则默认为 100 个节点。 |
InterPodAffinityArgs
InterPodAffinityArgs 保存用于配置 InterPodAffinity 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | InterPodAffinityArgs |
hardPodAffinityWeight [必填]int32 | HardPodAffinityWeight 是对与传入 Pod 具有匹配的硬亲和性的现有 Pod 的评分权重。 |
ignorePreferredTermsOfExistingPods [必填]布尔值 | IgnorePreferredTermsOfExistingPods 将调度器配置为在对候选节点进行评分时忽略现有 Pod 的首选亲和性规则,除非传入 Pod 具有 Pod 间亲和性。 |
KubeSchedulerConfiguration
KubeSchedulerConfiguration 配置调度器
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | 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 | 配置文件是 kube-scheduler 支持的调度配置文件。Pod 可以通过设置其关联的调度器名称来选择在特定配置文件下进行调度。未指定任何调度器名称的 Pod 将使用“default-scheduler”配置文件进行调度(如果此处存在)。 |
extenders [必填][]Extender | Extenders 是调度器扩展程序的列表,每个扩展程序都包含如何与扩展程序通信的值。这些扩展程序由所有调度器配置文件共享。 |
delayCacheUntilActive [必填]布尔值 | DelayCacheUntilActive 指定何时开始缓存。如果此值为 true 并且启用了领导者选举,则调度器将等待填充通知程序缓存,直到它成为领导者。这样做将导致故障转移速度变慢,但好处是在等待成为领导者时内存开销较低。默认为 false。 |
NodeAffinityArgs
NodeAffinityArgs 保存用于配置 NodeAffinity 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | NodeAffinityArgs |
addedAffinitycore/v1.NodeAffinity | AddedAffinity 适用于所有 Pod,此外还适用于 PodSpec 中指定的 NodeAffinity。也就是说,节点需要满足 AddedAffinity 和 .spec.NodeAffinity。默认情况下,AddedAffinity 为空(所有节点都匹配)。使用 AddedAffinity 时,某些具有与特定节点匹配的亲和性要求的 Pod(例如 Daemonset Pod)可能会保持不可调度状态。 |
NodeResourcesBalancedAllocationArgs
NodeResourcesBalancedAllocationArgs 保存用于配置 NodeResourcesBalancedAllocation 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | NodeResourcesBalancedAllocationArgs |
resources [必填][]ResourceSpec | 要管理的资源,如果未指定,则默认为“cpu”和“memory”。 |
NodeResourcesFitArgs
NodeResourcesFitArgs 保存用于配置 NodeResourcesFit 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | NodeResourcesFitArgs |
ignoredResources [必填][]字符串 | IgnoredResources 是 NodeResources 拟合过滤器应忽略的资源列表。这不适用于评分。 |
ignoredResourceGroups [必填][]字符串 | IgnoredResourceGroups 定义了 NodeResources 拟合过滤器应忽略的资源组列表。例如,如果组是 ["example.com"],它将忽略所有以 "example.com" 开头的资源名称,例如 "example.com/aaa" 和 "example.com/bbb"。资源组名称不能包含“/”。这不适用于评分。 |
scoringStrategy [必填]ScoringStrategy | ScoringStrategy 选择节点资源评分策略。默认策略是 LeastAllocated,具有相同的 "cpu" 和 "memory" 权重。 |
PodTopologySpreadArgs
PodTopologySpreadArgs 保存用于配置 PodTopologySpread 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | PodTopologySpreadArgs |
defaultConstraints[]core/v1.TopologySpreadConstraint | DefaultConstraints 定义要应用于未在 |
defaultingTypePodTopologySpreadConstraintsDefaulting | DefaultingType 确定如何推断 .defaultConstraints。可以是 "System" 或 "List" 之一。
默认为 "System"。 |
VolumeBindingArgs
VolumeBindingArgs 保存用于配置 VolumeBinding 插件的参数。
| 字段 | 描述 |
|---|---|
apiVersion字符串 | kubescheduler.config.k8s.io/v1 |
kind字符串 | VolumeBindingArgs |
bindTimeoutSeconds [必填]int64 | BindTimeoutSeconds 是卷绑定操作的超时时间(以秒为单位)。值必须是非负整数。值零表示不等待。如果此值为 nil,则将使用默认值 (600)。 |
shape[]UtilizationShapePoint | Shape 指定定义评分函数形状的点,该函数用于根据静态配置的 PV 的利用率对节点进行评分。利用率的计算方法是将 Pod 的总请求存储量除以每个节点上可行 PV 的总容量。每个点都包含利用率(范围从 0 到 100)及其关联分数(范围从 0 到 10)。您可以通过为不同的利用率指定不同的分数来改变优先级。默认形状点是
|
Extender
出现于
Extender 保存用于与扩展器通信的参数。如果未指定/为空的谓词,则假定扩展器选择不提供该扩展。
| 字段 | 描述 |
|---|---|
urlPrefix [必填]字符串 | 扩展器可用的 URL 前缀 |
filterVerb [必填]字符串 | 过滤器调用的谓词,如果不支持则为空。向扩展器发出过滤器调用时,此谓词会附加到 URLPrefix。 |
preemptVerb [必填]字符串 | 抢占调用的谓词,如果不支持则为空。向扩展器发出抢占调用时,此谓词会附加到 URLPrefix。 |
prioritizeVerb [必填]字符串 | 优先级调用的谓词,如果不支持则为空。向扩展器发出优先级调用时,此谓词会附加到 URLPrefix。 |
weight [必填]int64 | 优先级调用生成的节点分数的数字乘数。权重应为正整数 |
bindVerb [必填]字符串 | 绑定调用的谓词,如果不支持则为空。向扩展器发出绑定调用时,此谓词会附加到 URLPrefix。如果扩展器实现了此方法,则扩展器负责将 Pod 绑定到 apiserver。只有一个扩展器可以实现此功能。 |
enableHTTPS [必填]布尔值 | EnableHTTPS 指定是否应使用 https 与扩展器通信 |
tlsConfig [必填]ExtenderTLSConfig | TLSConfig 指定传输层安全配置 |
httpTimeout [必填]meta/v1.Duration | HTTPTimeout 指定调用扩展器的超时持续时间。过滤器超时会导致 Pod 调度失败。优先级超时将被忽略,将使用 k8s/其他扩展器优先级来选择节点。 |
nodeCacheCapable [必填]布尔值 | NodeCacheCapable 指定扩展器能够缓存节点信息,因此调度器应该只发送关于符合条件的节点的最小信息,假设扩展器已经缓存了集群中所有节点的完整详细信息 |
managedResources[]ExtenderManagedResource | ManagedResources 是此扩展器管理的扩展资源列表。
|
ignorable [必填]布尔值 | Ignorable 指定扩展器是否可忽略,即当扩展器返回错误或无法访问时,调度不应失败。 |
ExtenderManagedResource
出现于
ExtenderManagedResource 描述了由扩展器管理的扩展资源的参数。
| 字段 | 描述 |
|---|---|
name [必填]字符串 | Name 是扩展资源名称。 |
ignoredByScheduler [必填]布尔值 | IgnoredByScheduler 指示 kube-scheduler 在应用谓词时是否应忽略此资源。 |
ExtenderTLSConfig
出现于
ExtenderTLSConfig 包含使用扩展器启用 TLS 的设置
| 字段 | 描述 |
|---|---|
insecure [必填]布尔值 | 应在不验证 TLS 证书的情况下访问服务器。仅用于测试。 |
serverName [必填]字符串 | ServerName 被传递到服务器用于 SNI,并在客户端用于检查服务器证书。如果 ServerName 为空,则使用用于联系服务器的主机名。 |
certFile [必填]字符串 | 服务器需要 TLS 客户端证书身份验证 |
keyFile [必填]字符串 | 服务器需要 TLS 客户端证书身份验证 |
caFile [必填]字符串 | 服务器的可信根证书 |
certData [必填][]byte | CertData 保存 PEM 编码的字节(通常从客户端证书文件读取)。CertData 优先于 CertFile |
keyData [必填][]byte | KeyData 保存 PEM 编码的字节(通常从客户端证书密钥文件读取)。KeyData 优先于 KeyFile |
caData [必填][]byte | CAData 保存 PEM 编码的字节(通常从根证书包读取)。CAData 优先于 CAFile |
KubeSchedulerProfile
出现于
KubeSchedulerProfile 是一个调度配置文件。
| 字段 | 描述 |
|---|---|
schedulerName [必填]字符串 | 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 指定插件名称及其权重(如果适用)。权重仅用于评分插件。
| 字段 | 描述 |
|---|---|
name [必填]字符串 | Name 定义插件的名称 |
weight [必填]int32 | Weight 定义插件的权重,仅用于评分插件。 |
PluginConfig
出现于
PluginConfig 指定在初始化时应传递给插件的参数。在多个扩展点调用的插件只初始化一次。参数可以具有任意结构。由插件决定如何处理这些参数。
| 字段 | 描述 |
|---|---|
name [必填]字符串 | Name 定义要配置的插件的名称 |
args [必填]k8s.io/apimachinery/pkg/runtime.RawExtension | Args 定义在初始化时传递给插件的参数。参数可以具有任意结构。 |
PluginSet
出现于
PluginSet 指定扩展点的启用和禁用插件。如果数组为空、缺失或为 nil,则将使用该扩展点的默认插件。
| 字段 | 描述 |
|---|---|
enabled [必填][]Plugin | Enabled 指定除了默认插件之外还应启用的插件。如果默认插件也在调度器配置文件中配置,则插件的权重将相应地被覆盖。这些插件在默认插件之后调用,并按照此处指定的顺序调用。 |
disabled [必填][]Plugin | Disabled 指定应禁用的默认插件。当需要禁用所有默认插件时,应提供一个仅包含一个 "*" 的数组。 |
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 禁用“*”也是如此(不会自动注册默认插件)。仍然可以通过其各自的扩展点禁用插件。 在优先级方面,插件配置遵循以下基本层次结构
|
PodTopologySpreadConstraintsDefaulting
(string 的别名)
出现于
PodTopologySpreadConstraintsDefaulting 定义了如何为 PodTopologySpread 插件设置默认约束。
RequestedToCapacityRatioParam
出现于
RequestedToCapacityRatioParam 定义 RequestedToCapacityRatio 参数
| 字段 | 描述 |
|---|---|
shape [必填][]UtilizationShapePoint | Shape 是一个定义评分函数形状的点列表。 |
ResourceSpec
出现于
ResourceSpec 表示单个资源。
| 字段 | 描述 |
|---|---|
name [必填]字符串 | 资源名称。 |
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 项目的其他地方进行。