1KUBERNETES(1)(kubernetes)                            KUBERNETES(1)(kubernetes)
2
3
4
5Eric Paris Jan 2015
6
7

NAME

9       kube-scheduler -
10
11
12

SYNOPSIS

14       kube-scheduler [OPTIONS]
15
16
17

DESCRIPTION

19       The  Kubernetes scheduler is a control plane process which assigns Pods
20       to Nodes. The scheduler determines which Nodes are valid placements for
21       each Pod in the scheduling queue according to constraints and available
22       resources. The scheduler then ranks each valid Node and binds  the  Pod
23       to  a suitable Node. Multiple different schedulers may be used within a
24       cluster; kube-scheduler is the reference implementation.  See  schedul‐
25       ing ⟨https://kubernetes.io/docs/concepts/scheduling-eviction/⟩ for more
26       information about scheduling and the kube-scheduler component.
27
28
29

OPTIONS

31       --add_dir_header=false      If true, adds the  file  directory  to  the
32       header of the log messages
33
34
35       --allow-metric-labels=[]      The map from metric-label to value allow-
36       list of this label. The key's  format  is  ,.  The  value's  format  is
37       ,...e.g.   metric1,label1='v1,v2,v3',   metric1,label2='v1,v2,v3'  met‐
38       ric2,label1='v1,v2,v3'.
39
40
41       --alsologtostderr=false      log to standard error as well as files
42
43
44       --authentication-kubeconfig=""      kubeconfig  file  pointing  at  the
45       'core'  kubernetes server with enough rights to create tokenreviews.au‐
46       thentication.k8s.io. This is optional. If empty, all token requests are
47       considered  to  be anonymous and no client CA is looked up in the clus‐
48       ter.
49
50
51       --authentication-skip-lookup=false      If false,  the  authentication-
52       kubeconfig  will be used to lookup missing authentication configuration
53       from the cluster.
54
55
56       --authentication-token-webhook-cache-ttl=10s      The duration to cache
57       responses from the webhook token authenticator.
58
59
60       --authentication-tolerate-lookup-failure=true      If true, failures to
61       look up missing authentication configuration from the cluster  are  not
62       considered  fatal.  Note  that  this  can result in authentication that
63       treats all requests as anonymous.
64
65
66       --authorization-always-allow-paths=[/healthz,/readyz,/livez]          A
67       list  of HTTP paths to skip during authorization, i.e. these are autho‐
68       rized without contacting the 'core' kubernetes server.
69
70
71       --authorization-kubeconfig=""       kubeconfig  file  pointing  at  the
72       'core'  kubernetes server with enough rights to create subjectaccessre‐
73       views.authorization.k8s.io. This is optional. If  empty,  all  requests
74       not skipped by authorization are forbidden.
75
76
77       --authorization-webhook-cache-authorized-ttl=10s       The  duration to
78       cache 'authorized' responses from the webhook authorizer.
79
80
81       --authorization-webhook-cache-unauthorized-ttl=10s      The duration to
82       cache 'unauthorized' responses from the webhook authorizer.
83
84
85       --azure-container-registry-config=""       Path  to the file containing
86       Azure container registry configuration information.
87
88
89       --bind-address=0.0.0.0      The IP address on which to listen  for  the
90       --secure-port  port.  The  associated interface(s) must be reachable by
91       the rest of the cluster, and by CLI/web clients. If blank or an unspec‐
92       ified address (0.0.0.0 or ::), all interfaces will be used.
93
94
95       --cert-dir=""       The  directory  where the TLS certs are located. If
96       --tls-cert-file and --tls-private-key-file are provided, this flag will
97       be ignored.
98
99
100       --client-ca-file=""       If  set, any request presenting a client cer‐
101       tificate signed by one of the authorities in the client-ca-file is  au‐
102       thenticated  with  an  identity  corresponding to the CommonName of the
103       client certificate.
104
105
106       --config=""      The path to the configuration file.
107
108
109       --contention-profiling=true       DEPRECATED:  enable  lock  contention
110       profiling, if profiling is enabled. This parameter is ignored if a con‐
111       fig file is specified in --config.
112
113
114       --disabled-metrics=[]      This flag provides an escape hatch for  mis‐
115       behaving  metrics.  You must provide the fully qualified metric name in
116       order to disable it. Disclaimer: disabling metrics is higher in  prece‐
117       dence than showing hidden metrics.
118
119
120       --feature-gates=       A  set  of key=value pairs that describe feature
121       gates  for  alpha/experimental  features.  Options  are:  APIListChunk‐
122       ing=true|false  (BETA - default=true) APIPriorityAndFairness=true|false
123       (BETA - default=true)  APIResponseCompression=true|false  (BETA  -  de‐
124       fault=true)  APIServerIdentity=true|false (ALPHA - default=false) APIS‐
125       erverTracing=true|false  (ALPHA  -  default=false)  AllAlpha=true|false
126       (ALPHA  -  default=false)  AllBeta=true|false  (BETA  -  default=false)
127       AnyVolumeDataSource=true|false    (BETA    -    default=true)    AppAr‐
128       mor=true|false  (BETA - default=true) CPUManager=true|false (BETA - de‐
129       fault=true)  CPUManagerPolicyAlphaOptions=true|false   (ALPHA   -   de‐
130       fault=false)   CPUManagerPolicyBetaOptions=true|false   (BETA   -   de‐
131       fault=true) CPUManagerPolicyOptions=true|false  (BETA  -  default=true)
132       CSIInlineVolume=true|false     (BETA    -    default=true)    CSIMigra‐
133       tion=true|false (BETA - default=true) CSIMigrationAWS=true|false  (BETA
134       -  default=true) CSIMigrationAzureFile=true|false (BETA - default=true)
135       CSIMigrationGCE=true|false  (BETA  -  default=true)   CSIMigrationPort‐
136       worx=true|false (ALPHA - default=false) CSIMigrationRBD=true|false (AL‐
137       PHA  -  default=false)  CSIMigrationvSphere=true|false  (BETA   -   de‐
138       fault=false) CSIVolumeHealth=true|false (ALPHA - default=false) Contex‐
139       tualLogging=true|false    (ALPHA    -    default=false)    CronJobTime‐
140       Zone=true|false    (ALPHA    -    default=false)   CustomCPUCFSQuotaPe‐
141       riod=true|false (ALPHA - default=false) CustomResourceValidationExpres‐
142       sions=true|false      (ALPHA      -     default=false)     DaemonSetUp‐
143       dateSurge=true|false   (BETA   -   default=true)    DelegateFSGroupToC‐
144       SIDriver=true|false   (BETA  -  default=true)  DevicePlugins=true|false
145       (BETA - default=true) DisableAcceleratorUsageMetrics=true|false (BETA -
146       default=true)  DisableCloudProviders=true|false (ALPHA - default=false)
147       DisableKubeletCloudCredentialProviders=true|false    (ALPHA    -    de‐
148       fault=false) DownwardAPIHugePages=true|false (BETA - default=true) End‐
149       pointSliceTerminatingCondition=true|false   (BETA    -    default=true)
150       EphemeralContainers=true|false  (BETA  -  default=true) ExpandedDNSCon‐
151       fig=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDe‐
152       faulting=true|false     (BETA     -    default=false)    GRPCContainer‐
153       Probe=true|false (BETA - default=true)  GracefulNodeShutdown=true|false
154       (BETA - default=true) GracefulNodeShutdownBasedOnPodPriority=true|false
155       (BETA  -  default=true)  HPAContainerMetrics=true|false  (ALPHA  -  de‐
156       fault=false)  HPAScaleToZero=true|false  (ALPHA - default=false) Honor‐
157       PVReclaimPolicy=true|false   (ALPHA   -   default=false)    IdentifyPo‐
158       dOS=true|false    (BETA    -    default=true)   InTreePluginAWSUnregis‐
159       ter=true|false (ALPHA  -  default=false)  InTreePluginAzureDiskUnregis‐
160       ter=true|false  (ALPHA  -  default=false) InTreePluginAzureFileUnregis‐
161       ter=true|false   (ALPHA   -   default=false)    InTreePluginGCEUnregis‐
162       ter=true|false  (ALPHA  -  default=false) InTreePluginOpenStackUnregis‐
163       ter=true|false  (ALPHA  -  default=false)  InTreePluginPortworxUnregis‐
164       ter=true|false    (ALPHA   -   default=false)   InTreePluginRBDUnregis‐
165       ter=true|false  (ALPHA  -  default=false)   InTreePluginvSphereUnregis‐
166       ter=true|false  (ALPHA  - default=false) JobMutableNodeSchedulingDirec‐
167       tives=true|false (BETA - default=true) JobReadyPods=true|false (BETA  -
168       default=true)    JobTrackingWithFinalizers=true|false   (BETA   -   de‐
169       fault=false)   KubeletCredentialProviders=true|false   (BETA   -    de‐
170       fault=true)  KubeletInUserNamespace=true|false  (ALPHA - default=false)
171       KubeletPodResources=true|false   (BETA   -   default=true)   KubeletPo‐
172       dResourcesGetAllocatable=true|false  (BETA  -  default=true) LegacySer‐
173       viceAccountTokenNoAutoGeneration=true|false (BETA -  default=true)  Lo‐
174       calStorageCapacityIsolation=true|false (BETA - default=true) LocalStor‐
175       ageCapacityIsolationFSQuotaMonitoring=true|false    (ALPHA    -     de‐
176       fault=false) LogarithmicScaleDown=true|false (BETA - default=true) Max‐
177       UnavailableStatefulSet=true|false (ALPHA  -  default=false)  MemoryMan‐
178       ager=true|false (BETA - default=true) MemoryQoS=true|false (ALPHA - de‐
179       fault=false)  MinDomainsInPodTopologySpread=true|false  (ALPHA  -   de‐
180       fault=false)  MixedProtocolLBService=true|false  (BETA  - default=true)
181       NetworkPolicyEndPort=true|false (BETA - default=true) NetworkPolicySta‐
182       tus=true|false   (ALPHA   -   default=false)  NodeOutOfServiceVolumeDe‐
183       tach=true|false (ALPHA - default=false)  NodeSwap=true|false  (ALPHA  -
184       default=false)   OpenAPIEnums=true|false  (BETA  -  default=true)  Ope‐
185       nAPIV3=true|false  (BETA  -   default=true)   PodAndContainerStatsFrom‐
186       CRI=true|false (ALPHA - default=false) PodDeletionCost=true|false (BETA
187       - default=true) PodSecurity=true|false (BETA - default=true)  ProbeTer‐
188       minationGracePeriod=true|false   (BETA   -   default=false)  ProcMount‐
189       Type=true|false   (ALPHA    -    default=false)    ProxyTerminatingEnd‐
190       points=true|false (ALPHA - default=false) QOSReserved=true|false (ALPHA
191       - default=false) ReadWriteOncePod=true|false  (ALPHA  -  default=false)
192       RecoverVolumeExpansionFailure=true|false  (ALPHA  -  default=false) Re‐
193       mainingItemCount=true|false  (BETA   -   default=true)   RotateKubelet‐
194       ServerCertificate=true|false    (BETA    -   default=true)   SeccompDe‐
195       fault=true|false   (ALPHA   -   default=false)   ServerSideFieldValida‐
196       tion=true|false    (ALPHA    -    default=false)    ServiceIPStaticSub‐
197       range=true|false  (ALPHA  -  default=false)  ServiceInternalTrafficPol‐
198       icy=true|false (BETA - default=true) SizeMemoryBackedVolumes=true|false
199       (BETA - default=true) StatefulSetAutoDeletePVC=true|false (ALPHA -  de‐
200       fault=false)    StatefulSetMinReadySeconds=true|false   (BETA   -   de‐
201       fault=true) StorageVersionAPI=true|false (ALPHA - default=false)  Stor‐
202       ageVersionHash=true|false    (BETA   -   default=true)   TopologyAware‐
203       Hints=true|false (BETA - default=true) TopologyManager=true|false (BETA
204       -   default=true)   VolumeCapacityPriority=true|false   (ALPHA   -  de‐
205       fault=false)  WinDSR=true|false  (ALPHA   -   default=false)   WinOver‐
206       lay=true|false   (BETA   -   default=true)   WindowsHostProcessContain‐
207       ers=true|false (BETA - default=true)
208
209
210       -h, --help=false      help for kube-scheduler
211
212
213       --http2-max-streams-per-connection=0      The  limit  that  the  server
214       gives to clients for the maximum number of streams in an HTTP/2 connec‐
215       tion. Zero means to use golang's default.
216
217
218       --kube-api-burst=100      DEPRECATED: burst to use while  talking  with
219       kubernetes  apiserver.  This  parameter  is ignored if a config file is
220       specified in --config.
221
222
223       --kube-api-content-type="application/vnd.kubernetes.protobuf"      DEP‐
224       RECATED:  content type of requests sent to apiserver. This parameter is
225       ignored if a config file is specified in --config.
226
227
228       --kube-api-qps=50      DEPRECATED: QPS to use while talking with kuber‐
229       netes  apiserver.  This parameter is ignored if a config file is speci‐
230       fied in --config.
231
232
233       --kubeconfig=""      DEPRECATED: path to kubeconfig  file  with  autho‐
234       rization  and master location information. This parameter is ignored if
235       a config file is specified in --config.
236
237
238       --leader-elect=true      Start a leader election client and gain  lead‐
239       ership  before executing the main loop. Enable this when running repli‐
240       cated components for high availability.
241
242
243       --leader-elect-lease-duration=15s       The  duration  that  non-leader
244       candidates  will  wait  after  observing a leadership renewal until at‐
245       tempting to acquire leadership of a led but unrenewed leader slot. This
246       is effectively the maximum duration that a leader can be stopped before
247       it is replaced by another candidate. This is only applicable if  leader
248       election is enabled.
249
250
251       --leader-elect-renew-deadline=10s      The interval between attempts by
252       the acting master to renew a leadership slot before it  stops  leading.
253       This must be less than or equal to the lease duration. This is only ap‐
254       plicable if leader election is enabled.
255
256
257       --leader-elect-resource-lock="leases"      The type of resource  object
258       that  is used for locking during leader election. Supported options are
259       'leases', 'endpointsleases' and 'configmapsleases'.
260
261
262       --leader-elect-resource-name="kube-scheduler"      The name of resource
263       object that is used for locking during leader election.
264
265
266       --leader-elect-resource-namespace="kube-system"       The  namespace of
267       resource object that is used for locking during leader election.
268
269
270       --leader-elect-retry-period=2s      The  duration  the  clients  should
271       wait  between  attempting acquisition and renewal of a leadership. This
272       is only applicable if leader election is enabled.
273
274
275       --lock-object-name="kube-scheduler"      DEPRECATED: define the name of
276       the  lock  object.  Will  be removed in favor of leader-elect-resource-
277       name. This parameter is ignored if a config file is specified in --con‐
278       fig.
279
280
281       --lock-object-namespace="kube-system"      DEPRECATED: define the name‐
282       space of the lock object. Will be removed in favor of  leader-elect-re‐
283       source-namespace.  This parameter is ignored if a config file is speci‐
284       fied in --config.
285
286
287       --log-flush-frequency=5s      Maximum number  of  seconds  between  log
288       flushes
289
290
291       --log_backtrace_at=:0       when logging hits line file:N, emit a stack
292       trace
293
294
295       --log_dir=""      If non-empty, write log files in this directory
296
297
298       --log_file=""      If non-empty, use this log file
299
300
301       --log_file_max_size=1800      Defines the maximum size a log  file  can
302       grow to. Unit is megabytes. If the value is 0, the maximum file size is
303       unlimited.
304
305
306       --logging-format="text"      Sets the log  format.  Permitted  formats:
307       "text".  Non-default formats don't honor these flags: --add-dir-header,
308       --alsologtostderr, --log-backtrace-at,  --log-dir,  --log-file,  --log-
309       file-max-size, --logtostderr, --one-output, --skip-headers, --skip-log-
310       headers, --stderrthreshold, --vmodule.  Non-default  choices  are  cur‐
311       rently alpha and subject to change without warning.
312
313
314       --logtostderr=true      log to standard error instead of files
315
316
317       --master=""       The  address  of the Kubernetes API server (overrides
318       any value in kubeconfig)
319
320
321       --one_output=false      If true, only write logs to their native sever‐
322       ity level (vs also writing to each lower severity level)
323
324
325       --permit-address-sharing=false       If true, SO_REUSEADDR will be used
326       when binding the port. This allows binding to wildcard IPs like 0.0.0.0
327       and  specific  IPs in parallel, and it avoids waiting for the kernel to
328       release sockets in TIME_WAIT state. [default=false]
329
330
331       --permit-port-sharing=false      If true,  SO_REUSEPORT  will  be  used
332       when  binding  the port, which allows more than one instance to bind on
333       the same address and port. [default=false]
334
335
336       --pod-max-in-unschedulable-pods-duration=5m0s      DEPRECATED: the max‐
337       imum  time  a  pod can stay in unschedulablePods. If a pod stays in un‐
338       schedulablePods for longer than this value, the pod will be moved  from
339       unschedulablePods  to  backoffQ or activeQ. This flag is deprecated and
340       will be removed in 1.26
341
342
343       --profiling=true      DEPRECATED: enable profiling  via  web  interface
344       host:port/debug/pprof/.  This  parameter is ignored if a config file is
345       specified in --config.
346
347
348       --requestheader-allowed-names=[]      List of client certificate common
349       names  to allow to provide usernames in headers specified by --request‐
350       header-username-headers. If empty, any client certificate validated  by
351       the authorities in --requestheader-client-ca-file is allowed.
352
353
354       --requestheader-client-ca-file=""       Root  certificate bundle to use
355       to verify client certificates  on  incoming  requests  before  trusting
356       usernames  in  headers  specified  by --requestheader-username-headers.
357       WARNING: generally do not depend on authorization  being  already  done
358       for incoming requests.
359
360
361       --requestheader-extra-headers-prefix=[x-remote-extra-]      List of re‐
362       quest header prefixes to inspect. X-Remote-Extra- is suggested.
363
364
365       --requestheader-group-headers=[x-remote-group]       List  of   request
366       headers to inspect for groups. X-Remote-Group is suggested.
367
368
369       --requestheader-username-headers=[x-remote-user]       List  of request
370       headers to inspect for usernames. X-Remote-User is common.
371
372
373       --secure-port=10259      The port on which to serve HTTPS with  authen‐
374       tication and authorization. If 0, don't serve HTTPS at all.
375
376
377       --show-hidden-metrics-for-version=""        The  previous  version  for
378       which you want to show hidden metrics. Only the previous minor  version
379       is meaningful, other values will not be allowed. The format is ., e.g.:
380       '1.16'. The purpose of this format is make sure you have  the  opportu‐
381       nity  to  notice  if  the next release hides additional metrics, rather
382       than being surprised when they are permanently removed in  the  release
383       after that.
384
385
386       --skip_headers=false       If  true,  avoid  header prefixes in the log
387       messages
388
389
390       --skip_log_headers=false      If true, avoid headers when  opening  log
391       files
392
393
394       --stderrthreshold=2      logs at or above this threshold go to stderr
395
396
397       --tls-cert-file=""       File  containing  the default x509 Certificate
398       for HTTPS. (CA cert, if any, concatenated after server cert). If  HTTPS
399       serving  is enabled, and --tls-cert-file and --tls-private-key-file are
400       not provided, a self-signed certificate and key are generated  for  the
401       public address and saved to the directory specified by --cert-dir.
402
403
404       --tls-cipher-suites=[]       Comma-separated  list of cipher suites for
405       the server. If omitted, the default Go  cipher  suites  will  be  used.
406       Preferred   values:   TLS_AES_128_GCM_SHA256,   TLS_AES_256_GCM_SHA384,
407       TLS_CHACHA20_POLY1305_SHA256,     TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
408       TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
409       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
410       TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
411       TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
412       TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
413       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
414       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
415       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
416       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
417       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
418       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
419       TLS_RSA_WITH_AES_128_CBC_SHA,          TLS_RSA_WITH_AES_128_GCM_SHA256,
420       TLS_RSA_WITH_AES_256_CBC_SHA,  TLS_RSA_WITH_AES_256_GCM_SHA384.   Inse‐
421       cure          values:          TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
422       TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,  TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
423       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,  TLS_ECDHE_RSA_WITH_RC4_128_SHA,
424       TLS_RSA_WITH_3DES_EDE_CBC_SHA,         TLS_RSA_WITH_AES_128_CBC_SHA256,
425       TLS_RSA_WITH_RC4_128_SHA.
426
427
428       --tls-min-version=""      Minimum TLS version supported. Possible  val‐
429       ues: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
430
431
432       --tls-private-key-file=""      File containing the default x509 private
433       key matching --tls-cert-file.
434
435
436       --tls-sni-cert-key=[]      A pair of x509 certificate and  private  key
437       file  paths,  optionally  suffixed with a list of domain patterns which
438       are fully qualified domain names, possibly with prefixed wildcard  seg‐
439       ments. The domain patterns also allow IP addresses, but IPs should only
440       be used if the apiserver has visibility to the IP address requested  by
441       a client. If no domain patterns are provided, the names of the certifi‐
442       cate are extracted. Non-wildcard matches trump over  wildcard  matches,
443       explicit  domain  patterns  trump  over  extracted  names. For multiple
444       key/certificate pairs, use the --tls-sni-cert-key multiple times. Exam‐
445       ples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com".
446
447
448       -v, --v=0      number for the log level verbosity
449
450
451       --version=false      Print version information and quit
452
453
454       --vmodule=       comma-separated  list  of pattern=N settings for file-
455       filtered logging (only works for text log format)
456
457
458       --write-config-to=""      If set, write  the  configuration  values  to
459       this file and exit.
460
461
462

HISTORY

464       January  2015,  Originally compiled by Eric Paris (eparis at redhat dot
465       com) based on the kubernetes source material, but hopefully  they  have
466       been automatically generated since!
467
468
469
470Manuals                              User            KUBERNETES(1)(kubernetes)
Impressum