kube-scheduler

简介

Kubernetes 调度器是一个策略丰富、拓扑感知、工作负载特定的功能,调度器显著影响可用性、性能和容量。调度器需要考虑个人和集体的资源要求、服务质量要求、硬件/软件/政策约束、亲和力和反亲和力规范、数据局部性、负载间干扰、完成期限等。工作负载特定的要求必要时将通过 API 暴露。

  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
—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 的 ‘core’ 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 客户端必须可以访问关联的接口。如果为空,将使用所有接口(所有 IPv4 接口使用 0.0.0.0,所有 IPv6 接口使用 ::)。
—cert-dir string
TLS 证书所在的目录。如果提供了—tls-cert-file 和 —tls private-key-file,则将忽略此参数。
—client-ca-file string
如果已设置,由 client-ca-file 中的授权机构签名的客户端证书的任何请求都将使用与客户端证书的 CommonName 对应的身份进行身份验证。
—config string
配置文件的路径。标志会覆盖此文件中的值。
—contention-profiling
弃用: 如果启用了性能分析,则启用锁竞争分析
—feature-gates mapStringBool
一组 key=value 对,描述了 alpha/experimental 特征开关。选项包括:
APIListChunking=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
AllAlpha=true|false (ALPHA - 默认值=false)
AppArmor=true|false (BETA - 默认值=true)
AttachVolumeLimit=true|false (BETA - 默认值=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)
BlockVolume=true|false (BETA - 默认值=true)
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false)
CPUManager=true|false (BETA - 默认值=true)
CRIContainerLogRotation=true|false (BETA - 默认值=true)
CSIBlockVolume=true|false (BETA - 默认值=true)
CSIDriverRegistry=true|false (BETA - 默认值=true)
CSIInlineVolume=true|false (BETA - 默认值=true)
CSIMigration=true|false (ALPHA - 默认值=false)
CSIMigrationAWS=true|false (ALPHA - 默认值=false)
CSIMigrationAzureDisk=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false)
CSIMigrationGCE=true|false (ALPHA - 默认值=false)
CSIMigrationOpenStack=true|false (ALPHA - 默认值=false)
CSINodeInfo=true|false (BETA - 默认值=true)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResourceDefaulting=true|false (BETA - 默认值=true)
DevicePlugins=true|false (BETA - 默认值=true)
DryRun=true|false (BETA - 默认值=true)
DynamicAuditing=true|false (ALPHA - 默认值=false)
DynamicKubeletConfig=true|false (BETA - 默认值=true)
EndpointSlice=true|false (ALPHA - 默认值=false)
EphemeralContainers=true|false (ALPHA - 默认值=false)
EvenPodsSpread=true|false (ALPHA - 默认值=false)
ExpandCSIVolumes=true|false (BETA - 默认值=true)
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)
ExpandPersistentVolumes=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HyperVContainer=true|false (ALPHA - 默认值=false)
IPv6DualStack=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
LegacyNodeRoleBehavior=true|false (ALPHA - 默认值=true)
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
MountContainers=true|false (ALPHA - 默认值=false)
NodeDisruptionExclusion=true|false (ALPHA - 默认值=false)
NodeLease=true|false (BETA - 默认值=true)
NonPreemptingPriority=true|false (ALPHA - 默认值=false)
PodOverhead=true|false (ALPHA - 默认值=false)
PodShareProcessNamespace=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RemoveSelfLink=true|false (ALPHA - 默认值=false)
RequestManagement=true|false (ALPHA - 默认值=false)
ResourceLimitsPriorityFunction=true|false (ALPHA - 默认值=false)
ResourceQuotaScopeSelectors=true|false (BETA - 默认值=true)
RotateKubeletClientCertificate=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RunAsGroup=true|false (BETA - 默认值=true)
RuntimeClass=true|false (BETA - 默认值=true)
SCTPSupport=true|false (ALPHA - 默认值=false)
ScheduleDaemonSetPods=true|false (BETA - 默认值=true)
ServerSideApply=true|false (BETA - 默认值=true)
ServiceLoadBalancerFinalizer=true|false (BETA - 默认值=true)
ServiceNodeExclusion=true|false (ALPHA - 默认值=false)
StartupProbe=true|false (BETA - 默认值=true)
StorageVersionHash=true|false (BETA - 默认值=true)
StreamingProxyRedirects=true|false (BETA - 默认值=true)
SupportNodePidsLimit=true|false (BETA - 默认值=true)
SupportPodPidsLimit=true|false (BETA - 默认值=true)
Sysctls=true|false (BETA - 默认值=true)
TTLAfterFinished=true|false (ALPHA - 默认值=false)
TaintBasedEvictions=true|false (BETA - 默认值=true)
TaintNodesByCondition=true|false (BETA - 默认值=true)
TokenRequest=true|false (BETA - 默认值=true)
TokenRequestProjection=true|false (BETA - 默认值=true)
TopologyManager=true|false (ALPHA - 默认值=false)
ValidateProxyRedirects=true|false (BETA - 默认值=true)
VolumePVCDataSource=true|false (BETA - 默认值=true)
VolumeSnapshotDataSource=true|false (ALPHA - 默认值=false)
VolumeSubpathEnvExpansion=true|false (BETA - 默认值=true)
WatchBookmark=true|false (BETA - 默认值=true)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (ALPHA - 默认值=false)
WindowsGMSA=true|false (BETA - 默认值=true)
WindowsRunAsUserName=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 apiserver 通信时使用
—kube-api-content-type string     默认: “application/vnd.kubernetes.protobuf”
弃用: 发送到 apiserver 的请求的内容类型。
—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     默认: “endpoints”
在领导者选举期间用于锁定的资源对象的类型。支持的选项是端点(默认)和 configmaps
—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
当记录命中行文件:N 时发出堆栈跟踪
—log-dir string
如果为非空,则在此目录中写入日志文件
—log-file string
如果为非空,请使用此日志文件
—log-file-max-size uint     默认: 1800
定义日志文件可以增长到的最大值。单位为兆字节。如果值为0,则最大文件大小为无限制。
—log-flush-frequency duration     默认: 5s
两次日志刷新之间的最大秒数
—logtostderr     默认: true
日志记录到标准错误而不是文件
—master string
Kubernetes API 服务器的地址(覆盖 kubeconfig 中的任何值)
—policy-config-file string
弃用:具有调度程序策略配置的文件。如果未提供 policy ConfigMap 或 —use-legacy-policy-config = true,则使用此文件
—policy-configmap string
弃用: 包含调度程序策略配置的 ConfigMap 对象的名称。如果 —use-legacy-policy-config = false,则它必须在调度程序初始化之前存在于系统命名空间中。必须将配置作为键为 ‘policy.cfg’ 的 ‘Data’ 映射中元素的值提供
—policy-configmap-namespace string     默认: “kube-system”
弃用: 策略 ConfigMap 所在的命名空间。如果未提供或为空,则将使用 kube-system 命名空间。
—port int     默认: 10251
弃用: 在没有身份验证和授权的情况下不安全地为 HTTP 服务的端口。如果为0,则根本不提供 HTTP。请参见—secure-port。
—profiling
弃用: 通过 Web 界面主机启用配置文件: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。
—skip-headers
如果为 true,请在日志消息中避免头部前缀
—skip-log-headers
如果为true,则在打开日志文件时避免头部
—stderrthreshold severity     默认: 2
达到或超过此阈值的日志转到 stderr
—tls-cert-file string
包含默认的 HTTPS x509 证书的文件。(CA证书(如果有)在服务器证书之后并置)。如果启用了 HTTPS 服务,并且未提供 —tls-cert-file 和 —tls-private-key-file,则会为公共地址生成一个自签名证书和密钥,并将其保存到 —cert-dir 指定的目录中。
—tls-cipher-suites stringSlice
服务器的密码套件列表,以逗号分隔。如果省略,将使用默认的 Go 密码套件。可能的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,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_RC4_128_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,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_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 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
如果已设置,请将配置值写入此文件并退出。