Kueue Configuration v1beta1 API
资源类型
Configuration
Configuration 是 kueueconfigurations API 的 Schema
| 字段 | 描述 |
|---|---|
apiVersionstring | config.kueue.x-k8s.io/v1beta1 |
kindstring | Configuration |
namespace [必需]string
|
Namespace 是 Kueue 部署的命名空间。它用作 Webhook Service 的 DNSName 的一部分。 如果未设置,该值将从文件 /var/run/secrets/kubernetes.io/serviceaccount/namespace 中设置 如果文件不存在,默认值为 kueue-system。 |
ControllerManager [必需]ControllerManager
|
(包含 ControllerManager 的成员。)
ControllerManager 返回控制器的配置 |
manageJobsWithoutQueueName [必需]bool
|
ManageJobsWithoutQueueName 控制 Kueue 是否协调 未设置标签 kueue.x-k8s.io/queue-name 的作业。 如果设置为 true,则这些作业将被挂起,除非 它们被分配队列并最终被准入,否则永远不会启动。这也适用于 在启动 kueue 控制器之前创建的作业。 默认为 false;因此,这些作业不受管理,如果它们被创建 未挂起,它们将立即开始。 |
managedJobsNamespaceSelector [必需]k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector
|
ManagedJobsNamespaceSelector 提供了一种基于命名空间的机制,用于豁免作业 不受 Kueue 管理。 它为基于 Pod 的集成(pod、deployment、statefulset 等)提供了强大的豁免, 对于基于 Pod 的集成,只有其命名空间与 ManagedJobsNamespaceSelector 匹配的作业才 有资格由 Kueue 管理。非匹配命名空间中的 Pod、deployment 等将 永远不会由 Kueue 管理,即使它们有 kueue.x-k8s.io/queue-name 标签。 这种强大的豁免确保 Kueue 不会干扰系统命名空间的基本操作。 对于所有其他集成,ManagedJobsNamespaceSelector 通过仅调节 ManageJobsWithoutQueueName 的效果来提供较弱的豁免。对于这些集成, 具有 kueue.x-k8s.io/queue-name 标签的作业将始终由 Kueue 管理。没有 kueue.x-k8s.io/queue-name 标签的作业只有在 ManageJobsWithoutQueueName 为 true 且作业的命名空间与 ManagedJobsNamespaceSelector 匹配时才会由 Kueue 管理。 |
internalCertManagement [必需]InternalCertManagement
|
InternalCertManagement 是 internalCertManagement 的配置 |
waitForPodsReady [必需]WaitForPodsReady
|
WaitForPodsReady 是配置,为 Job 提供基于时间的全有或全无 调度语义,通过确保所有 pod 在指定时间内准备就绪(运行 并通过就绪探针)。如果超过超时,则工作负载被驱逐。 |
clientConnection [必需]ClientConnection
|
ClientConnection 为 Kubernetes 提供额外的配置选项 API 服务器客户端。 |
integrations [必需]Integrations
|
Integrations 为 AI/ML/Batch 框架提供配置选项 集成(包括 K8S job)。 |
queueVisibility [必需]QueueVisibility
|
QueueVisibility 是配置,用于暴露有关顶部的信息 待处理工作负载。 已弃用:此字段将在 v1beta2 中移除,使用 VisibilityOnDemand (https://kueue.sigs.k8s.io/docs/tasks/manage/monitor_pending_workloads/pending_workloads_on_demand/) 代替。 |
multiKueue [必需]MultiKueue
|
MultiKueue 控制 MultiKueue AdmissionCheck 控制器的行为。 |
fairSharing [必需]FairSharing
|
FairSharing 控制集群中的公平共享语义。 |
admissionFairSharing [必需]AdmissionFairSharing
|
admissionFairSharing 表示在 |
resources [必需]Resources
|
Resources 为处理资源提供额外的配置选项。 |
featureGates [必需]map[string]bool
|
FeatureGates 是特性名称到布尔值的映射,允许覆盖 特性的默认启用状态。该映射不能与通过命令行参数 "--feature-gates" 传递特性列表一起使用 用于 Kueue 部署。 |
objectRetentionPoliciesObjectRetentionPolicies
|
ObjectRetentionPolicies 为 Kueue 管理的对象的自动删除提供配置选项。nil 值禁用所有自动删除。 |
AdmissionFairSharing
出现于:
| 字段 | 描述 |
|---|---|
usageHalfLifeTime [必需]k8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
usageHalfLifeTime 表示当前使用量衰减一半的时间 如果设置为 0,使用量将立即重置为 0。 |
usageSamplingInterval [必需]k8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
usageSamplingInterval 表示 Kueue 更新 FairSharingStatus 中 consumedResources 的频率 默认为 5 分钟。 |
resourceWeights [必需]map[ResourceName]float64
|
resourceWeights 为资源分配权重,这些权重用于计算 LocalQueue 的 资源使用情况和工作负载顺序。 默认为 1。 |
ClientConnection
出现于:
| 字段 | 描述 |
|---|---|
qps [必需]float32
|
QPS 控制 K8S api 服务器允许的每秒查询数 连接。 将此设置为负值将禁用客户端侧速率限制。 |
burst [必需]int32
|
Burst 允许客户端超出其速率时积累额外查询。 |
ClusterQueueVisibility
出现于:
| 字段 | 描述 |
|---|---|
maxCount [必需]int32
|
MaxCount 表示在集群队列状态中暴露的待处理工作负载的最大数量。 当值设置为 0 时,ClusterQueue 可见性更新被禁用。 最大值为 4000。 默认为 10。 |
ControllerConfigurationSpec
出现于:
ControllerConfigurationSpec 定义了全局配置 向管理器注册的控制器。
| 字段 | 描述 |
|---|---|
groupKindConcurrencymap[string]int
|
GroupKindConcurrency 是从 Kind 到并发协调数的映射 该控制器允许。 当使用构建器实用程序在该管理器中注册控制器时, 用户必须在 For(...) 调用中指定控制器协调的类型。 如果传递的对象的 kind 与该映射中的键之一匹配,则该控制器的并发 设置为指定的数字。 键的格式应与 GroupKind.String() 一致,
例如 apps 组中的 ReplicaSet(无论版本)将是 |
cacheSyncTimeouttime.Duration
|
CacheSyncTimeout 指的是等待同步缓存的时间限制。 如果未设置,默认为 2 分钟。 |
ControllerHealth
出现于:
ControllerHealth 定义了健康配置。
| 字段 | 描述 |
|---|---|
healthProbeBindAddressstring
|
HealthProbeBindAddress 是控制器应绑定的 TCP 地址 用于提供健康探针 可以设置为 "0" 或 "" 以禁用健康探针的提供。 |
readinessEndpointNamestring
|
ReadinessEndpointName,默认为 "readyz" |
livenessEndpointNamestring
|
LivenessEndpointName,默认为 "healthz" |
ControllerManager
出现于:
| 字段 | 描述 |
|---|---|
webhookControllerWebhook
|
Webhook 包含控制器的 webhook 配置 |
leaderElectionk8s.io/component-base/config/v1alpha1.LeaderElectionConfiguration
|
LeaderElection 是配置管理器时使用的 LeaderElection 配置 manager.Manager 领导者选举 |
metricsControllerMetrics
|
Metrics 包含控制器指标配置 |
healthControllerHealth
|
Health 包含控制器健康配置 |
pprofBindAddressstring
|
PprofBindAddress 是控制器应绑定的 TCP 地址 用于提供 pprof。 可以设置为 "" 或 "0" 以禁用 pprof 服务。 由于 pprof 可能包含敏感信息,在将其暴露给公众之前请确保对其进行保护。 |
controllerControllerConfigurationSpec
|
Controller 包含控制器的全局配置选项 在此管理器中注册。 |
tlsTLSOptions
|
TLS 包含所有 Kueue API 服务器的 TLS 安全设置 (webhooks、metrics 和 visibility)。 |
ControllerMetrics
出现于:
ControllerMetrics 定义了指标配置。
| 字段 | 描述 |
|---|---|
bindAddressstring
|
BindAddress 是控制器应绑定的 TCP 地址用于提供 prometheus 指标。 可以设置为 "0" 以禁用指标服务。 |
enableClusterQueueResourcesbool
|
EnableClusterQueueResources,如果为 true,将报告集群队列资源使用情况和配额指标。 |
customLabels[]ControllerMetricsCustomLabel
|
CustomLabels 是一个条目列表,其值将作为额外的 ClusterQueue、LocalQueue 和 Cohort 指标上的 Prometheus 标签。 需要 CustomMetricLabels 特性门控。 |
localQueueMetricsLocalQueueMetrics
|
LocalQueueMetrics 是提供 LocalQueue 指标选项的配置。 |
ControllerMetricsCustomLabel
出现于:
ControllerMetricsCustomLabel 定义了一个 Kubernetes 标签或注解,用于提升 作为带有 "custom_" 前缀的 Prometheus 指标标签。
| 字段 | 描述 |
|---|---|
name [必需]string
|
Name 用作构建 Prometheus 标签的后缀:Kueue 自动添加 "custom_" 前缀(例如,name: "team" 变为标签 "custom_team")。 必须遵循 Prometheus 标签命名约定:[a-zA-Z_][a-zA-Z0-9_]*。 |
sourceLabelKeystring
|
SourceLabelKey 是从中读取值的 Kubernetes 标签键。 必须是有效的 Kubernetes 限定名称。 与 SourceAnnotationKey 互斥。 如果均未指定,默认为 Name。 |
sourceAnnotationKeystring
|
SourceAnnotationKey 是从中读取值的 Kubernetes 注解键。 必须是有效的 Kubernetes 限定名称。 与 SourceLabelKey 互斥。 |
ControllerWebhook
出现于:
ControllerWebhook 定义了控制器的 webhook 服务器。
| 字段 | 描述 |
|---|---|
portint
|
Port 是 webhook 服务器服务的端口。 用于设置 webhook.Server.Port。 |
hoststring
|
Host 是 webhook 服务器绑定的主机名。 用于设置 webhook.Server.Host。 |
certDirstring
|
CertDir 是包含服务器密钥和证书的目录。 如果未设置,webhook 服务器将在 {TempDir}/k8s-webhook-server/serving-certs 中查找服务器密钥和证书。服务器密钥和证书 必须分别命名为 tls.key 和 tls.crt。 |
DeviceClassMapping
出现于:
DeviceClassMapping 保存设备类到逻辑资源的映射 用于动态资源分配支持。
| 字段 | 描述 |
|---|---|
name [必需]k8s.io/api/core/v1.ResourceName
|
Name 在 ClusterQueue.nominalQuota 和 Workload 状态中引用。 必须是有效的完全限定名称,由可选的 DNS 子域前缀组成 后跟斜杠和 DNS 标签,或仅 DNS 标签。 DNS 标签由小写字母数字字符或连字符组成, 并且必须以字母数字字符开头和结尾。 DNS 子域前缀遵循与 DNS 标签相同的规则,但可以包含句点。 总长度不得超过 253 个字符。 |
deviceClassNames [必需][]k8s.io/api/core/v1.ResourceName
|
DeviceClassNames 枚举由此资源名称表示的 DeviceClasses。 每个设备类名称必须是有效的限定名称,由可选的 DNS 子域前缀组成 后跟斜杠和 DNS 标签,或仅 DNS 标签。 DNS 标签由小写字母数字字符或连字符组成, 并且必须以字母数字字符开头和结尾。 DNS 子域前缀遵循与 DNS 标签相同的规则,但可以包含句点。 每个名称的总长度不得超过 253 个字符。 |
FairSharing
出现于:
| 字段 | 描述 |
|---|---|
enable [必需]bool
|
enable 表示是否为所有队列启用公平共享。 默认为 false。 |
preemptionStrategies [必需][]PreemptionStrategy
|
preemptionStrategies 表示抢占应满足哪些约束。 抢占算法只会在使用先前策略后传入工作负载(抢占者)不适合时才使用列表中的下一个策略。 可能的值为:
|
Integrations
出现于:
| 字段 | 描述 |
|---|---|
frameworks [必需][]string
|
要启用的框架名称列表。 可能的选项:
|
externalFrameworks [必需][]string
|
由外部控制器为 Kueue 管理的 GroupVersionKinds 列表;
预期格式为 |
podOptions [必需]PodIntegrationOptions
|
PodOptions 定义了 kueue 控制器对 pod 对象的行为 已弃用:此字段将在 v1beta2 中移除,使用 ManagedJobsNamespaceSelector (https://kueue.sigs.k8s.io/docs/tasks/run/plain_pods/) 代替。 |
labelKeysToCopy [必需][]string
|
labelKeysToCopy 是应从作业复制到工作负载对象的标签键列表。作业不需要拥有此列表中的所有标签。如果作业没有此列表中具有给定键的某些标签,则构造的工作负载对象将在没有此标签的情况下创建。在从可组合作业(pod group)创建工作负载的情况下,如果多个对象具有此列表中某个键的标签,则这些标签的值必须匹配,否则工作负载创建将失败。标签仅在工作负载创建期间复制,即使基础作业的标签更改也不会更新。 |
InternalCertManagement
出现于:
| 字段 | 描述 |
|---|---|
enable [必需]bool
|
Enable 控制 webhook 的内部证书管理的使用,
指标和可见性端点。
启用时,Kueue 使用库生成和
自签名证书。
禁用时,您需要为 webhooks、metrics 和 visibility 提供证书
通过第三方证书
此 secret 被挂载到 kueue 控制器管理器 pod。webhooks 的挂载路径是 /tmp/k8s-webhook-server/serving-certs,
metrics 端点的预期路径是 |
webhookServiceName [必需]string
|
WebhookServiceName 是用作 DNSName 一部分的 Service 的名称。 默认为 kueue-webhook-service。 |
webhookSecretName [必需]string
|
WebhookSecretName 是用于存储 CA 和服务器证书的 Secret 的名称。 默认为 kueue-webhook-server-cert。 |
LocalQueueMetrics
出现于:
LocalQueueMetrics 定义了本地队列指标的配置选项。 如果留空,则指标将暴露所有命名空间中的所有本地队列。
| 字段 | 描述 |
|---|---|
enablebool
|
Enable 是一个旋钮,允许为本地队列暴露指标。默认为 true。 |
localQueueSelectork8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector
|
LocalQueueSelector 可用于选择需要收集指标的本地队列。 |
MultiKueue
出现于:
| 字段 | 描述 |
|---|---|
gcIntervalk8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
GCInterval 定义两次连续垃圾回收运行之间的时间间隔。 默认为 1 分钟。如果为 0,则禁用垃圾回收。 |
originstring
|
Origin 定义一个标签值,用于跟踪工作集群中工作负载的创建者。 这被 multikueue 在其垃圾收集器等组件中使用,以识别 由该 multikueue 管理器集群创建的远程对象,并在其本地对应物不再存在时删除它们。 |
workerLostTimeoutk8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
WorkerLostTimeout 定义如果与保留工作负载的工作集群的连接丢失,本地工作负载的 multikueue 准入检查状态保持 Ready 的时间。 默认为 15 分钟。 |
dispatcherNamestring
|
DispatcherName 定义负责选择工作集群来处理工作负载的调度器。
|
externalFrameworks[]MultiKueueExternalFramework
|
ExternalFrameworks 定义了应由通用 MultiKueue 适配器支持的外部框架列表。每个条目定义如何处理 MultiKueue 操作的特定 GroupVersionKind (GVK)。 |
MultiKueueExternalFramework
出现于:
MultiKueueExternalFramework 定义了一个非内置的框架。
| 字段 | 描述 |
|---|---|
name [必需]string
|
Name 是由外部控制器管理的资源的 GVK
预期格式为 |
ObjectRetentionPolicies
出现于:
ObjectRetentionPolicies 保存不同对象类型的保留设置。
| 字段 | 描述 |
|---|---|
workloadsWorkloadRetentionPolicy
|
Workloads 配置 Workloads 的保留。 nil 值禁用 Workloads 的自动删除。 |
PodIntegrationOptions
出现于:
| 字段 | 描述 |
|---|---|
namespaceSelector [必需]k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector
|
NamespaceSelector 可用于从 pod 协调中省略某些命名空间 |
podSelector [必需]k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector
|
PodSelector 可用于选择要协调的 pod |
PreemptionStrategy
(string 的别名)
出现于:
QueueVisibility
出现于:
| 字段 | 描述 |
|---|---|
clusterQueues [必需]ClusterQueueVisibility
|
ClusterQueues 是配置,用于暴露集群队列中顶部待处理工作负载的信息。 |
updateIntervalSeconds [必需]int32
|
UpdateIntervalSeconds 指定队列中顶部待处理工作负载结构更新的时间间隔。 最小值为 1。 默认为 5。 |
RequeuingStrategy
出现于:
| 字段 | 描述 |
|---|---|
timestampRequeuingTimestamp
|
Timestamp 定义用于重新排队因 Pod 就绪性而被驱逐的 Workload 的时间戳。可能的值为:
|
backoffLimitCountint32
|
BackoffLimitCount 定义重新排队重试的最大次数。
一旦达到该次数,工作负载将被停用( 每次退避持续时间约为 "b*2^(n-1)+Rand",其中:
默认为 null。 |
backoffBaseSecondsint32
|
BackoffBaseSeconds 定义被驱逐工作负载重新排队的指数退避基数。 默认为 60。 |
backoffMaxSecondsint32
|
BackoffMaxSeconds 定义重新排队被驱逐工作负载的最大退避时间。 默认为 3600。 |
RequeuingTimestamp
(string 的别名)
出现于:
ResourceTransformation
出现于:
| 字段 | 描述 |
|---|---|
input [必需]k8s.io/api/core/v1.ResourceName
|
Input 是输入资源的名称。 |
strategy [必需]ResourceTransformationStrategy
|
Strategy 指定输入资源是应该被替换还是保留。 默认为 Retain |
multiplyByk8s.io/api/core/v1.ResourceName
|
MultiplyBy 表示工作负载请求的资源名称,如果 指定。 资源的请求量用于乘以 由 "input" 字段指示的资源的请求量。 |
outputs [必需]k8s.io/api/core/v1.ResourceList
|
Outputs 指定每单位输入资源的输出资源和数量。
与 |
ResourceTransformationStrategy
(string 的别名)
出现于:
Resources
出现于:
| 字段 | 描述 |
|---|---|
excludeResourcePrefixes [必需][]string
|
ExcludedResourcePrefixes 定义哪些资源应被 Kueue 忽略 |
transformations [必需][]ResourceTransformation
|
Transformations 定义如何将 PodSpec 资源转换为 Workload 资源请求。 这旨在成为一个以 Input 为键的映射(由验证代码强制执行) |
deviceClassMappings[]DeviceClassMapping
|
DeviceClassMappings 定义从设备类到逻辑资源的映射 用于动态资源分配支持。 |
TLSOptions
出现于:
TLSOptions 定义 Kueue 服务器的 TLS 安全设置
| 字段 | 描述 |
|---|---|
minVersionstring
|
minVersion 是支持的最低 TLS 版本。 值来自 tls 包常量 (https://golang.org/pkg/crypto/tls/#pkg-constants)。 此字段仅在 TLSOptions 设置为 true 时有效。 默认值是不设置此值并继承 golang 设置。 |
cipherSuites[]string
|
cipherSuites 是服务器允许的密码套件列表。 请注意,TLS 1.3 密码套件不可配置。 值来自 tls 包常量 (https://golang.org/pkg/crypto/tls/#pkg-constants)。 默认值是不设置此值并继承 golang 设置。 |
WaitForPodsReady
出现于:
WaitForPodsReady 定义 Wait For Pods Ready 特性的配置, 用于确保所有 Pod 在指定时间内准备就绪。
| 字段 | 描述 |
|---|---|
enable [必需]bool
|
Enable 表示是否启用等待 pods 就绪特性。 默认为 false。 |
timeoutk8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
Timeout 定义已准入工作负载达到 PodsReady=true 条件的时间。当超过超时时,工作负载 被驱逐并重新排队到同一个集群队列中。 默认为 5 分钟。 |
blockAdmission [必需]bool
|
BlockAdmission 为 true 时,集群队列将阻止所有后续作业的准入,直到作业达到 PodsReady=true 条件。
此设置仅在 |
requeuingStrategyRequeuingStrategy
|
RequeuingStrategy 定义工作负载重新排队的策略。 |
recoveryTimeoutk8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
RecoveryTimeout 定义一个超时,从工作负载被准入并运行后最后一次转换到 PodsReady=false 条件开始测量。 这种转换可能发生在 Pod 失败且等待替换 Pod 被调度时。 超过超时后,相应的作业会再次被挂起 并在退避延迟后重新排队。只有当 waitForPodsReady.enable=true 时,才会强制执行超时。 默认为 timeout 的值。设置为 "0s" 禁用恢复超时检查。 |
WorkloadRetentionPolicy
出现于:
WorkloadRetentionPolicy 定义了工作负载应何时被删除的策略。
| 字段 | 描述 |
|---|---|
afterFinishedk8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
AfterFinished 是工作负载完成后等待的持续时间 在删除它之前。 持续时间为 0 将立即删除。 nil 值禁用自动删除。 使用 metav1.Duration 表示(例如 "10m"、"1h30m")。 |
afterDeactivatedByKueuek8s.io/apimachinery/pkg/apis/meta/v1.Duration
|
AfterDeactivatedByKueue 是等待任何 Kueue 管理的工作负载(如 Job、JobSet 或其他自定义工作负载类型)被 Kueue 标记为停用后自动删除它的持续时间。 停用工作负载的删除可能会级联到 Kueue 未创建的对象,因为删除父工作负载所有者(如 JobSet)可能会触发依赖资源的垃圾回收。 持续时间为 0 将立即删除。 nil 值禁用自动删除。 使用 metav1.Duration 表示(例如 "10m"、"1h30m")。 |
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.