kube-scheduler

概要

Kubernetes 调度器是控制平面进程,它将 Pod 分配到节点上。调度器根据约束和可用资源,确定调度队列中每个 Pod 的有效放置节点。然后调度器对每个有效节点进行排名,并将 Pod 绑定到合适的节点上。集群中可以使用多个不同的调度器;kube-scheduler 是参考实现。有关调度和 kube-scheduler 组件的更多信息,请参阅调度

kube-scheduler [flags]

选项

--allow-metric-labels stringToString     默认值: []

此标签从度量标签到值允许列表的映射。键的格式为 <MetricName>,<LabelName>。值的格式为 <allowed_value>,<allowed_value>...例如 metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'。

--allow-metric-labels-manifest string

包含允许列表映射清单文件的路径。文件的格式与 --allow-metric-labels 标志的格式相同。请注意,--allow-metric-labels 标志将覆盖清单文件。

--authentication-kubeconfig string

指向拥有足够权限创建 tokenreviews.authentication.k8s.io 的“核心” Kubernetes 服务器的 kubeconfig 文件。这是可选的。如果为空,所有令牌请求将被视为匿名,并且不会在集群中查找客户端 CA。

--authentication-skip-lookup

如果为 false,将使用 authentication-kubeconfig 从集群中查找缺失的认证配置。

--authentication-token-webhook-cache-ttl duration     默认值: 10s

缓存来自 webhook 令牌认证器响应的持续时间。

--authentication-tolerate-lookup-failure     默认值: true

如果为 true,则从集群中查找缺失认证配置的失败不会被视为致命错误。请注意,这可能导致认证将所有请求视为匿名请求。

--authorization-always-allow-paths strings     默认值: "/healthz,/readyz,/livez"

在授权期间跳过的 HTTP 路径列表,即这些路径无需联系“核心” Kubernetes 服务器即可获得授权。

--authorization-kubeconfig string

指向拥有足够权限创建 subjectaccessreviews.authorization.k8s.io 的“核心” Kubernetes 服务器的 kubeconfig 文件。这是可选的。如果为空,所有未被授权跳过的请求都将被禁止。

--authorization-webhook-cache-authorized-ttl duration     默认值: 10s

缓存来自 webhook 授权器“已授权”响应的持续时间。

--authorization-webhook-cache-unauthorized-ttl duration     默认值: 10s

缓存来自 webhook 授权器“未授权”响应的持续时间。

--bind-address string     默认值: 0.0.0.0

监听 --secure-port 端口的 IP 地址。关联的接口必须可以被集群的其余部分以及 CLI/Web 客户端访问。如果为空或未指定地址(0.0.0.0 或 ::),将使用所有接口和 IP 地址族。

--cert-dir string

TLS 证书所在的目录。如果提供了 --tls-cert-file 和 --tls-private-key-file,将忽略此标志。

--client-ca-file string

如果设置,任何提供由 client-ca-file 中某个机构签名的客户端证书的请求,将使用与客户端证书 CommonName 对应的身份进行认证。

--config string

配置文件路径。

--contention-profiling     默认值: true

已弃用: 如果启用性能分析,则启用阻塞分析。如果在 --config 中指定了配置文件,则忽略此参数。

--disable-http2-serving

如果为 true,将禁用 HTTP2 服务 [默认值=false]

--disabled-metrics strings

此标志为异常行为的度量提供了一个逃生通道。您必须提供完整的度量名称才能禁用它。免责声明:禁用度量的优先级高于显示隐藏的度量。

--emulated-version strings

不同组件模拟其能力(API、特性等)的版本。
如果设置,组件将模拟此版本的行为,而不是底层二进制版本。
版本格式只能是 major.minor,例如:'--emulated-version=wardle=1.2,kube=1.31'。
选项包括: kube=1.31..1.33(默认值:1.33)
如果未指定组件,则默认为“kube”

--feature-gates colonSeparatedMultimapStringString

逗号分隔的 component:key=value 对列表,用于描述不同组件的 alpha/实验性特性的特性门控。
如果未指定组件,则默认为“kube”。此标志可以重复调用。例如:--feature-gates 'wardle:featureA=true,wardle:featureB=false' --feature-gates 'kube:featureC=true' 选项包括
kube:APIResponseCompression=true|false (BETA - 默认值=true)
kube:APIServerIdentity=true|false (BETA - 默认值=true)
kube:APIServerTracing=true|false (BETA - 默认值=true)
kube:APIServingWithRoutine=true|false (ALPHA - 默认值=false)
kube:AllAlpha=true|false (ALPHA - 默认值=false)
kube:AllBeta=true|false (BETA - 默认值=false)
kube:AllowParsingUserUIDFromCertAuth=true|false (BETA - 默认值=true)
kube:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - 默认值=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (BETA - 默认值=true)
kube:AuthorizeNodeWithSelectors=true|false (BETA - 默认值=true)
kube:AuthorizeWithSelectors=true|false (BETA - 默认值=true)
kube:CBORServingAndStorage=true|false (ALPHA - 默认值=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
kube:CSIVolumeHealth=true|false (ALPHA - 默认值=false)
kube:ClientsAllowCBOR=true|false (ALPHA - 默认值=false)
kube:ClientsPreferCBOR=true|false (ALPHA - 默认值=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - 默认值=false)
kube:ClusterTrustBundle=true|false (BETA - 默认值=false)
kube:ClusterTrustBundleProjection=true|false (BETA - 默认值=false)
kube:ComponentFlagz=true|false (ALPHA - 默认值=false)
kube:ComponentStatusz=true|false (ALPHA - 默认值=false)
kube:ConcurrentWatchObjectDecode=true|false (BETA - 默认值=false)
kube:ConsistentListFromCache=true|false (BETA - 默认值=true)
kube:ContainerCheckpoint=true|false (BETA - 默认值=true)
kube:ContainerStopSignals=true|false (ALPHA - 默认值=false)
kube:ContextualLogging=true|false (BETA - 默认值=true)
kube:CoordinatedLeaderElection=true|false (BETA - 默认值=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
kube:DRAAdminAccess=true|false (ALPHA - 默认值=false)
kube:DRADeviceTaints=true|false (ALPHA - 默认值=false)
kube:DRAPartitionableDevices=true|false (ALPHA - 默认值=false)
kube:DRAPrioritizedList=true|false (ALPHA - 默认值=false)
kube:DRAResourceClaimDeviceStatus=true|false (BETA - 默认值=true)
kube:DeclarativeValidation=true|false (BETA - 默认值=true)
kube:DeclarativeValidationTakeover=true|false (BETA - 默认值=false)
kube:DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - 默认值=false)
kube:DisableAllocatorDualWrite=true|false (BETA - 默认值=false)
kube:DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - 默认值=true)
kube:DynamicResourceAllocation=true|false (BETA - 默认值=false)
kube:EventedPLEG=true|false (ALPHA - 默认值=false)
kube:ExternalServiceAccountTokenSigner=true|false (ALPHA - 默认值=false)
kube:GracefulNodeShutdown=true|false (BETA - 默认值=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
kube:HPAConfigurableTolerance=true|false (ALPHA - 默认值=false)
kube:HPAScaleToZero=true|false (ALPHA - 默认值=false)
kube:ImageMaximumGCAge=true|false (BETA - 默认值=true)
kube:ImageVolume=true|false (BETA - 默认值=false)
kube:InOrderInformers=true|false (BETA - 默认值=true)
kube:InPlacePodVerticalScaling=true|false (BETA - 默认值=true)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - 默认值=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
kube:InformerResourceVersion=true|false (ALPHA - 默认值=false)
kube:JobManagedBy=true|false (BETA - 默认值=true)
kube:JobPodReplacementPolicy=true|false (BETA - 默认值=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - 默认值=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - 默认值=false)
kube:KubeletEnsureSecretPulledImages=true|false (ALPHA - 默认值=false)
kube:KubeletFineGrainedAuthz=true|false (BETA - 默认值=true)
kube:KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
kube:KubeletPSI=true|false (ALPHA - 默认值=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - 默认值=false)
kube:KubeletSeparateDiskGC=true|false (BETA - 默认值=true)
kube:KubeletServiceAccountTokenForCredentialProviders=true|false (ALPHA - 默认值=false)
kube:KubeletTracing=true|false (BETA - 默认值=true)
kube:ListFromCacheSnapshot=true|false (ALPHA - 默认值=false)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - 默认值=false)
kube:LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
kube:LoggingBetaOptions=true|false (BETA - 默认值=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
kube:MemoryQoS=true|false (ALPHA - 默认值=false)
kube:MutableCSINodeAllocatableCount=true|false (ALPHA - 默认值=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
kube:NodeLogQuery=true|false (BETA - 默认值=false)
kube:NodeSwap=true|false (BETA - 默认值=true)
kube:OpenAPIEnums=true|false (BETA - 默认值=true)
kube:OrderedNamespaceDeletion=true|false (BETA - 默认值=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
kube:PodDeletionCost=true|false (BETA - 默认值=true)
kube:PodLevelResources=true|false (ALPHA - 默认值=false)
kube:PodLifecycleSleepAction=true|false (BETA - 默认值=true)
kube:PodLifecycleSleepActionAllowZero=true|false (BETA - 默认值=true)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - 默认值=false)
kube:PodObservedGenerationTracking=true|false (ALPHA - 默认值=false)
kube:PodReadyToStartContainersCondition=true|false (BETA - 默认值=true)
kube:PodTopologyLabelsAdmission=true|false (ALPHA - 默认值=false)
kube:PortForwardWebsockets=true|false (BETA - 默认值=true)
kube:PreferSameTrafficDistribution=true|false (ALPHA - 默认值=false)
kube:ProcMountType=true|false (BETA - 默认值=true)
kube:QOSReserved=true|false (ALPHA - 默认值=false)
kube:RecoverVolumeExpansionFailure=true|false (BETA - 默认值=true)
kube:ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - 默认值=false)
kube:RelaxedDNSSearchValidation=true|false (BETA - 默认值=true)
kube:RelaxedEnvironmentVariableValidation=true|false (BETA - 默认值=true)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - 默认值=true)
kube:RemoteRequestHeaderUID=true|false (BETA - 默认值=true)
kube:ResilientWatchCacheInitialization=true|false (BETA - 默认值=true)
kube:ResourceHealthStatus=true|false (ALPHA - 默认值=false)
kube:RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - 默认值=false)
kube:SELinuxChangePolicy=true|false (BETA - 默认值=true)
kube:SELinuxMount=true|false (BETA - 默认值=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - 默认值=true)
kube:SchedulerAsyncPreemption=true|false (BETA - 默认值=true)
kube:SchedulerPopFromBackoffQ=true|false (BETA - 默认值=true)
kube:SchedulerQueueingHints=true|false (BETA - 默认值=true)
kube:SeparateTaintEvictionController=true|false (BETA - 默认值=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (BETA - 默认值=true)
kube:StorageCapacityScoring=true|false (ALPHA - 默认值=false)
kube:StorageVersionAPI=true|false (ALPHA - 默认值=false)
kube:StorageVersionHash=true|false (BETA - 默认值=true)
kube:StorageVersionMigrator=true|false (ALPHA - 默认值=false)
kube:StreamingCollectionEncodingToJSON=true|false (BETA - 默认值=true)
kube:StreamingCollectionEncodingToProtobuf=true|false (BETA - 默认值=true)
kube:StrictIPCIDRValidation=true|false (ALPHA - 默认值=false)
kube:StructuredAuthenticationConfiguration=true|false (BETA - 默认值=true)
kube:SupplementalGroupsPolicy=true|false (BETA - 默认值=true)
kube:SystemdWatchdog=true|false (BETA - 默认值=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
kube:TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (BETA - 默认值=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值=true)
kube:UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值=false)
kube:UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值=false)
kube:UserNamespacesSupport=true|false (BETA - 默认值=true)
kube:VolumeAttributesClass=true|false (BETA - 默认值=false)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - 默认值=false)
kube:WatchList=true|false (BETA - 默认值=false)
kube:WatchListClient=true|false (BETA - 默认值=false)
kube:WinDSR=true|false (BETA - 默认值=true)
kube:WinOverlay=true|false (BETA - 默认值=true)
kube:WindowsCPUAndMemoryAffinity=true|false (ALPHA - 默认值=false)
kube:WindowsGracefulNodeShutdown=true|false (ALPHA - 默认值=false)

-h, --help

kube-scheduler 帮助

--http2-max-streams-per-connection int

服务器提供给客户端的 HTTP/2 连接中最大流数的限制。零表示使用 golang 的默认值。

--kube-api-burst int32     默认值: 100

已弃用: 与 Kubernetes apiserver 通信时使用的突发数量。如果在 --config 中指定了配置文件,则忽略此参数。

--kube-api-content-type string     默认值: "application/vnd.kubernetes.protobuf"

已弃用: 发送到 apiserver 请求的内容类型。如果在 --config 中指定了配置文件,则忽略此参数。

--kube-api-qps float     默认值: 50

已弃用: 与 Kubernetes apiserver 通信时使用的 QPS。如果在 --config 中指定了配置文件,则忽略此参数。

--kubeconfig string

已弃用: 包含授权和主节点位置信息的 kubeconfig 文件路径。如果在 --config 中指定了配置文件,则忽略此参数。

--leader-elect     默认值: true

启动领导者选举客户端并在执行主循环之前获得领导权。在高可用性场景下运行副本组件时启用此选项。

--leader-elect-lease-duration duration     默认值: 15s

非领导者候选者在观察到领导权续约后,直到尝试获取已拥有但未续约的领导者槽位的领导权之前等待的持续时间。这实际上是领导者在被其他候选者取代之前可能停止的最长持续时间。此选项仅在启用领导者选举时适用。

--leader-elect-renew-deadline duration     默认值: 10s

当前主节点在停止领导之前尝试续约领导者槽位的间隔时间。此值必须小于租约持续时间。此选项仅在启用领导者选举时适用。

--leader-elect-resource-lock string     默认值: "leases"

在领导者选举期间用于锁定的资源对象类型。支持的选项为 'leases'。

--leader-elect-resource-name string     默认值: "kube-scheduler"

在领导者选举期间用于锁定的资源对象的名称。

--leader-elect-resource-namespace string     默认值: "kube-system"

在领导者选举期间用于锁定的资源对象的命名空间。

--leader-elect-retry-period duration     默认值: 2s

客户端在尝试获取和续约领导权之间应等待的持续时间。此选项仅在启用领导者选举时适用。

--log-flush-frequency duration     默认值: 5s

日志刷新之间的最长秒数

--log-text-info-buffer-size quantity

[Alpha] 在文本格式且输出流分离时,信息消息可以缓冲一段时间以提高性能。默认值零字节会禁用缓冲。大小可以指定为字节数 (512)、1000 的倍数 (1K)、1024 的倍数 (2Ki) 或其幂次 (3M, 4G, 5Mi, 6Gi)。启用 LoggingAlphaOptions 特性门控才能使用此选项。

--log-text-split-stream

[Alpha] 在文本格式下,将错误消息写入 stderr,将信息消息写入 stdout。默认是将单个流写入 stdout。启用 LoggingAlphaOptions 特性门控才能使用此选项。

--logging-format string     默认值: "text"

设置日志格式。允许的格式:“text”。

--master string

Kubernetes API 服务器地址(覆盖 kubeconfig 中的任何值)

--permit-address-sharing

如果为 true,在绑定端口时将使用 SO_REUSEADDR。这允许同时绑定到通配符 IP(如 0.0.0.0)和特定 IP,并避免等待内核释放处于 TIME_WAIT 状态的套接字。[默认值=false]

--permit-port-sharing

如果为 true,在绑定端口时将使用 SO_REUSEPORT,这允许多个实例绑定到相同的地址和端口。[默认值=false]

--pod-max-in-unschedulable-pods-duration duration     默认值: 5m0s

已弃用: Pod 可以在 unschedulablePods 中停留的最长时间。如果 Pod 在 unschedulablePods 中停留的时间超过此值,它将被从 unschedulablePods 移到 backoffQ 或 activeQ。此标志已弃用,并将在未来的版本中移除。

--profiling     默认值: true

已弃用: 通过 Web 界面 host:port/debug/pprof/ 启用性能分析。如果在 --config 中指定了配置文件,则忽略此参数。

--requestheader-allowed-names strings

允许在 --requestheader-username-headers 指定的头部中提供用户名的客户端证书通用名称列表。如果为空,则允许由 --requestheader-client-ca-file 中的机构验证的任何客户端证书。

--requestheader-client-ca-file string

用于验证传入请求上的客户端证书的根证书 bundle,之后再信任 --requestheader-username-headers 指定的头部中的用户名。警告:通常不要依赖已对传入请求完成的授权。

--requestheader-extra-headers-prefix strings     默认值: "x-remote-extra-"

要检查的请求头部前缀列表。建议使用 X-Remote-Extra-。

--requestheader-group-headers strings     默认值: "x-remote-group"

要检查组的请求头部列表。建议使用 X-Remote-Group。

--requestheader-uid-headers strings

要检查 UID 的请求头部列表。建议使用 X-Remote-Uid。需要启用 RemoteRequestHeaderUID 特性才能使用。

--requestheader-username-headers strings     默认值: "x-remote-user"

要检查用户名的请求头部列表。X-Remote-User 是常见的。

--secure-port int     默认值: 10259

提供带有认证和授权的 HTTPS 服务的端口。如果为 0,则完全不提供 HTTPS 服务。

--show-hidden-metrics-for-version string

您想要显示隐藏度量的先前版本。只有先前的次要版本有意义,其他值将不被允许。格式为 <major>.<minor>,例如:'1.16'。这种格式的目的是确保您有机会注意到下一个版本是否隐藏了额外的度量,而不是在之后的版本中它们被永久移除时感到惊讶。

--tls-cert-file string

包含用于 HTTPS 的默认 x509 证书的文件(如果存在 CA 证书,则附加在服务器证书之后)。如果启用了 HTTPS 服务,且未提供 --tls-cert-file 和 --tls-private-key-file,将为公共地址生成自签名证书和密钥,并保存到由 --cert-dir 指定的目录。

--tls-cipher-suites strings

服务器使用的密码套件列表,逗号分隔。如果省略,将使用默认的 Go 密码套件。
推荐值: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256。
不安全的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA。

--tls-min-version string

支持的最低 TLS 版本。可能的值:VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13

--tls-private-key-file string

包含与 --tls-cert-file 匹配的默认 x509 私钥的文件。

--tls-sni-cert-key string

一对 x509 证书和私钥文件路径,可选地附加域名模式列表,这些域名模式是完全限定域名,可能带有前缀通配符段。域名模式也允许 IP 地址,但仅当 apiserver 对客户端请求的 IP 地址可见时才应使用 IP。如果未提供域名模式,则提取证书的名称。非通配符匹配优先于通配符匹配,显式域名模式优先于提取的名称。对于多个密钥/证书对,请多次使用 --tls-sni-cert-key。示例:“example.crt,example.key”或“foo.crt,foo.key:*.foo.com,foo.com”。

-v, --v int

日志级别详细程度的数字

--version version[=true]

--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本

--vmodule pattern=N,...

逗号分隔的 pattern=N 设置列表,用于文件过滤日志记录(仅适用于文本日志格式)

--write-config-to string

如果设置,将配置值写入此文件并退出。

本页面是自动生成的。

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

最后修改时间:太平洋标准时间 2025 年 4 月 24 日上午 7:58: v1.33 的组件参考 (05a3c54633)