kube-scheduler

简介

Kubernetes 调度器是一个控制面进程,负责将 Pods 指派到节点上。 调度器基于约束和可用资源为调度队列中每个 Pod 确定其可合法放置的节点。 调度器之后对所有合法的节点进行排序,将 Pod 绑定到一个合适的节点。 在同一个集群中可以使用多个不同的调度器;kube-scheduler 是其参考实现。 参阅调度 以获得关于调度和 kube-scheduler 组件的更多信息。

  1. kube-scheduler [flags]

选项

—add-dir-header
如果为 true,则将文件目录添加到日志消息的头部
—address string     默认值:”0.0.0.0”
已弃用: 要监听 —port 端口的 IP 地址(对于所有 IPv4 接口设置为 0.0.0.0,对于所有 IPv6 接口设置为 ::)。 请参阅 —bind-address。
—algorithm-provider string
已弃用: 要使用的调度算法驱动,此标志设置组件配置框架的默认插件。 可选值:ClusterAutoscalerProvider | DefaultProvider
—alsologtostderr
—authentication-kubeconfig string
指向具有足够权限以创建 tokenaccessreviews.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 stringSlice     默认值:[/healthz]
在授权过程中跳过的 HTTP 路径列表,即在不联系 ‘core’ kubernetes 服务器的情况下被授权的 HTTP 路径。
—authorization-kubeconfig string
指向具有足够权限以创建 subjectaccessreviews.authorization.k8s.io 的 Kubernetes 核心服务器的 kubeconfig 文件。这是可选的。 如果为空,则所有未被鉴权机制略过的请求都会被禁止。
—authorization-webhook-cache-authorized-ttl duration     默认值:10s
缓存来自 Webhook 授权者的 ‘authorized’ 响应的持续时间。
—authorization-webhook-cache-unauthorized-ttl duration     默认值:10s
缓存来自 Webhook 授权者的 ‘unauthorized’ 响应的持续时间。
—azure-container-registry-config string
包含 Azure 容器仓库配置信息的文件的路径。
—bind-address ip     默认值:0.0.0.0
监听 —secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/ Web 客户端必须可以访问关联的接口。 如果为空,将使用所有接口(0.0.0.0 表示使用所有 IPv4 接口,”::” 表示使用所有 IPv6 接口)。
—cert-dir string
TLS 证书所在的目录。如果提供了—tls-cert-file 和 —tls private-key-file, 则将忽略此参数。
—client-ca-file string
如果已设置,由 client-ca-file 中的证书机构签名的客户端证书的任何请求都将使用 与客户端证书的 CommonName 对应的身份进行身份验证。
—config string
配置文件的路径。以下标志会覆盖此文件中的值:
—address
—port
—use-legacy-policy-config
—policy-configmap
—policy-config-file
—algorithm-provider
—contention-profiling
已弃用: 如果启用了性能分析,则启用锁竞争分析
—experimental-logging-sanitization
[试验性功能] 当启用此标志时,标记为敏感的字段(密码、密钥、令牌)等不会被日志 输出。
运行时的日志清理操作可能引入相当程度的计算开销,因此不应在生产环境中启用。
—feature-gates mapStringBool
一组 key=value 对,描述了 alpha/experimental 特征开关。选项包括:
APIListChunking=true|false (BETA - 默认值=true)
APIPriorityAndFairness=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
APIServerIdentity=true|false (ALPHA - 默认值=false)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AllowInsecureBackendProxy=true|false (BETA - 默认值=true)
AnyVolumeDataSource=true|false (ALPHA - 默认值=false)
AppArmor=true|false (BETA - 默认值=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false)
CPUManager=true|false (BETA - 默认值=true)
CRIContainerLogRotation=true|false (BETA - 默认值=true)
CSIInlineVolume=true|false (BETA - 默认值=true)
CSIMigration=true|false (BETA - 默认值=true)
CSIMigrationAWS=true|false (BETA - 默认值=true)
CSIMigrationAWSComplete=true|false (ALPHA - 默认值=false)
CSIMigrationAzureDisk=true|false (BETA - 默认值=true)
CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值=false)
CSIMigrationGCE=true|false (BETA - 默认值=true)
CSIMigrationGCEComplete=true|false (ALPHA - 默认值=false)
CSIMigrationOpenStack=true|false (BETA - 默认值=true)
CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值=false)
CSIMigrationvSphere=true|false (BETA - 默认值=false)
CSIMigrationvSphereComplete=true|false (BETA - default=false)
CSIServiceAccountToken=true|false (ALPHA - 默认值=false)
CSIStorageCapacity=true|false (ALPHA - 默认值=false)
CSIVolumeFSGroupPolicy=true|false (BETA - 默认值=true)
ConfigurableFSGroupPolicy=true|false (BETA - 默认值=true)
CronJobControllerV2=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
DefaultPodTopologySpread=true|false (BETA - 默认值=true)
DevicePlugins=true|false (BETA - 默认值=true)
DisableAcceleratorUsageMetrics=true|false (BETA - 默认值=true)
DownwardAPIHugePages=true|false (ALPHA - 默认值=false)
DynamicKubeletConfig=true|false (BETA - 默认值=true)
EfficientWatchResumption=true|false (ALPHA - 默认值=false)
EndpointSlice=true|false (ALPHA - 默认值=false)
EndpointSliceNodeName=true|false (ALPHA - 默认值=false)
EndpointSliceProxying=true|false (BETA - 默认值=true)
EndpointSliceTerminatingCondition=true|false (ALPHA - 默认值=false)
EphemeralContainers=true|false (ALPHA - 默认值=false)
ExpandCSIVolumes=true|false (BETA - 默认值=true)
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)
ExpandPersistentVolumes=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
GenericEphemeralVolume=true|false (ALPHA - 默认值=false)
GracefulNodeShutdown=true|false (ALPHA - 默认值=false)
HPAContainerMetrics=true|false (ALPHA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HugePageStorageMediumSize=true|false (BETA - 默认值=true)
IPv6DualStack=true|false (ALPHA - 默认值=false)
ImmutableEphemeralVolumes=true|false (BETA - 默认值=true)
KubeletCredentialProviders=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
LegacyNodeRoleBehavior=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
MixedProtocolLBService=true|false (ALPHA - 默认值=false)
NodeDisruptionExclusion=true|false (BETA - 默认值=false)
NonPreemptingPriority=true|false (BETA - 默认值=true)
PodDisruptionBudget=true|false (BETA - 默认值=true)
PodOverhead=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RemoveSelfLink=true|false (BETA - 默认值=true)
RootCAConfigMap=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RunAsGroup=true|false (BETA - 默认值=true)
ServerSideApply=true|false (BETA - 默认值=true)
ServiceAccountIssuerDiscovery=true|false (BETA - 默认值=true)
ServiceLBNodePortControl=true|false (ALPHA - 默认值=false)
ServiceNodeExclusion=true|false (BETA - 默认值=true)
ServiceTopology=true|false (ALPHA - 默认值=false)
SetHostnameAsFQDN=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (ALPHA - 默认值=false)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
Sysctls=true|false (BETA - 默认值=true)
TTLAfterFinished=true|false (ALPHA - 默认值=false)
TopologyManager=true|false (BETA - 默认值=true)
ValidateProxyRedirects=true|false (BETA - 默认值=true)
WarningHeaders=true|false (BETA - 默认值=true)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsEndpointSliceProxying=true|false (ALPHA - 默认值=false)
—hard-pod-affinity-symmetric-weight int32     默认值:1
已弃用: RequiredDuringScheduling 亲和性是不对称的,但是存在与每个 RequiredDuringScheduling 关联性规则相对应的隐式 PreferredDuringScheduling 关联性规则。 —hard-pod-affinity-symmetric-weight 代表隐式 PreferredDuringScheduling 关联性规则的权重。权重必须在 0-100 范围内。此选项已移至策略配置文件。
-h, —help
kube-scheduler 帮助命令
—http2-max-streams-per-connection int
服务器为客户端提供的 HTTP/2 连接最大限制。零表示使用 Golang 的默认值。
—kube-api-burst int32     默认值:100
已弃用: 与 kubernetes API 通信时使用的突发请求个数限值。
—kube-api-content-type string     默认值:”application/vnd.kubernetes.protobuf”
已弃用: 发送到 API 服务器的请求的内容类型。
—kube-api-qps float32     默认值:50
已弃用: 与 kubernetes apiserver 通信时要使用的 QPS
—kubeconfig string
已弃用: 包含鉴权和主节点位置信息的 kubeconfig 文件的路径。
—leader-elect     默认值:true
在执行主循环之前,开始领导者选举并选出领导者。 使用多副本来实现高可用性时,可启用此标志。
—leader-elect-lease-duration duration     默认值:15s
非领导者候选人在观察到领导者更新后将等待直到试图获得领导但未更新的领导者职位的等待时间。 这实际上是领导者在被另一位候选人替代之前可以停止的最大持续时间。 该情况仅在启用了领导者选举的情况下才适用。
—leader-elect-renew-deadline duration     默认值:10s
领导者尝试在停止领导之前更新领导职位的间隔时间。该时间必须小于或等于租赁期限。 仅在启用了领导者选举的情况下才适用。
—leader-elect-resource-lock endpoints     默认值:”leases”
在领导者选举期间用于锁定的资源对象的类型。支持的选项是 endpointsconfigmapsleasesendpointleasesconfigmapsleases
—leader-elect-resource-name string     默认值:”kube-scheduler”
在领导者选举期间用于锁定的资源对象的名称。
—leader-elect-resource-namespace string     默认值:”kube-system”
在领导者选举期间用于锁定的资源对象的命名空间。
—leader-elect-retry-period duration     默认值:2s
客户应在尝试获取和更新领导之间等待的时间。仅在启用了领导者选举的情况下才适用。
—lock-object-name string     默认值:”kube-scheduler”
已弃用: 定义锁对象的名称。将被删除以便使用 —leader-elect-resource-name
—lock-object-namespace string     默认值:”kube-system”
已弃用: 定义锁对象的命名空间。将被删除以便使用 leader-elect-resource-namespace
—log-backtrace-at traceLocation     默认值::0
当记录命中行文件 file 的第 N 行时输出堆栈跟踪。
—log-dir string
如果为非空,则在此目录中写入日志文件。
—log-file string
如果为非空,则使用此文件作为日志文件。
—log-file-max-size uint     默认值:1800
定义日志文件可以增长到的最大值。单位为兆字节。 如果值为 0,则最大文件大小为无限制。
—log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数。
—logging-format string     默认值:”text”
设置日志格式。可选格式:”json”、”text”。
非默认格式不会在意以下标志设置: —add_dir_header、—alsologtostderr、—log_backtrace_at、—log_dir、 —log_file、—log_file_max_size、—logtostderr、—one_output、 —skip_headers、—skip_log_headers、—stderrthreshold、—vmodule、 —log-flush-frequency.
非默认选项目前处于 Alpha 阶段,有可能会出现变更且无事先警告。
—logtostderr     默认值:true
日志记录到标准错误输出而不是文件。
—master string
Kubernetes API 服务器的地址(覆盖 kubeconfig 中的任何值)。
—one-output
若此标志为 true,则日志仅写入其自身的严重性级别,而不会写入所有较低严重性级别。
—permit-port-sharing
如果此标志为 true,在绑定端口时会使用 SO_REUSEPORT,从而允许不止一个 实例绑定到同一地址和端口。
—policy-config-file string
已弃用:包含调度器策略配置的文件。 当策略 ConfigMap 为提供时,或者 —use-legacy-policy-config=true 时使用此文件。 注意:当此标志与插件配置一起使用时,调度器会失败。
—policy-configmap string
已弃用: 包含调度器策略配置的 ConfigMap 对象的名称。 如果 —use-legacy-policy-config=false,则它必须在调度器初始化之前存在于 系统命名空间中。配置数据必须对应 ‘data’ 映射中键名为 ‘policy.cfg’ 的元素的值。 注意:如果与插件配置一起使用,调度器会失败。
—policy-configmap-namespace string     默认值:”kube-system”
已弃用: 策略 ConfigMap 所在的名字空间。如果未提供或为空,则将使用 kube-system 名字空间。 注意:如果与插件配置一起使用,调度器会失败。
—port int     默认值:10251
已弃用: 在没有身份验证和授权的情况下不安全地为 HTTP 服务的端口。 如果为0,则根本不提供 HTTP。请参见—secure-port。
—profiling
已弃用: 通过 Web 界面主机启用配置文件:host:port/debug/pprof/
—requestheader-allowed-names stringSlice
客户端证书通用名称列表,允许在 —requestheader-username-headers 指定的头部中提供用户名。如果为空,则允许任何由 —requestheader-client-ca-file 中证书机构验证的客户端证书。
—requestheader-client-ca-file string
在信任 —requestheader-username-headers 指定的头部中的用户名之前 用于验证传入请求上的客户端证书的根证书包。 警告:通常不应假定传入请求已经完成鉴权。
—requestheader-extra-headers-prefix stringSlice     默认值:[x-remote-extra-]
要检查请求头部前缀列表。建议使用 X-Remote-Extra-
—requestheader-group-headers stringSlice     默认值:[x-remote-group]
用于检查组的请求头部列表。建议使用 X-Remote-Group
—requestheader-username-headers stringSlice     默认值:[x-remote-user]
用于检查用户名的请求头部列表。X-Remote-User 很常用。
—scheduler-name string     默认值:”default-scheduler”
已弃用: 调度器名称,用于根据 Pod 的 “spec.schedulerName” 选择此 调度器将处理的 Pod。
—secure-port int     默认值:10259
通过身份验证和授权为 HTTPS 服务的端口。如果为 0,则根本不提供 HTTPS。
—show-hidden-metrics-for-version string
你希望显式隐藏指标的老版本号。只有较早的此版本号有意义,其它值都是不允许的。 格式为 <主版本>.<此版本>,例如:’1.16’。 此格式的目的是确保你有机会注意到是否下一个发行版本中隐藏了一些额外的指标, 而不是当某些指标在该版本之后被彻底移除时感到震惊。
—skip-headers
如果为 true,日志消息中不再写入头部前缀。
—skip-log-headers
如果为 true,则在打开日志文件时忽略其头部。
—stderrthreshold severity     默认值:2
达到或超过此阈值的日志会被写入到标准错误输出。
—tls-cert-file string
包含默认的 HTTPS x509 证书的文件。(CA证书(如果有)在服务器证书之后并置)。 如果启用了 HTTPS 服务,并且未提供 —tls-cert-file—tls-private-key-file,则会为公共地址生成一个自签名证书和密钥, 并将其保存到 —cert-dir 指定的目录中。
—tls-cipher-suites stringSlice
服务器的密码套件列表,以逗号分隔。如果省略,将使用默认的 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_3DES_EDE_CBC_SHA, 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_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384.
不安全的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, 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 namedCertKey     默认值:[]
一对 x509 证书和私钥文件路径,可选地后缀为完全限定域名的域模式列表, 并可能带有前缀的通配符段。如果未提供域名模式,则提取证书名称。 非通配符匹配优先于通配符匹配,显式域名模式优先于提取而来的名称。 若有多个密钥/证书对,可多次使用 —tls-sni-cert-key。 例如: “example.crt,example.key” 或者 “foo.crt,foo.key:*.foo.com,foo.com”。
—use-legacy-policy-config
已弃用:设置为 true 时,调度程序将忽略策略 ConfigMap 并使用策略配置文件。 注意:当此标志与插件配置一起使用时,调度器会失败。
-v, —v Level
设置日志级别详细程度的数字
—version version[=true]
打印版本信息并退出。
—vmodule moduleSpec
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录。
—write-config-to string
如果已设置,将配置值写入此文件并退出。