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

NAME

9       kube-apiserver -
10
11
12

SYNOPSIS

14       kube-apiserver [OPTIONS]
15
16
17

DESCRIPTION

19       The Kubernetes API server validates and configures data for the api ob‐
20       jects which include pods, services, replicationcontrollers, and others.
21       The  API  Server  services REST operations and provides the frontend to
22       the cluster's shared state through which all other components interact.
23
24
25

OPTIONS

27       --admission-control=[]      Admission is divided into  two  phases.  In
28       the  first  phase,  only  mutating admission plugins run. In the second
29       phase, only validating admission plugins run. The names  in  the  below
30       list may represent a validating plugin, a mutating plugin, or both. The
31       order of plugins in which they are passed to this flag does not matter.
32       Comma-delimited  list  of:  AlwaysAdmit,  AlwaysDeny, AlwaysPullImages,
33       CertificateApproval, CertificateSigning, CertificateSubjectRestriction,
34       DefaultIngressClass,   DefaultStorageClass,   DefaultTolerationSeconds,
35       DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, Im‐
36       agePolicyWebhook,  LimitPodHardAntiAffinityTopology,  LimitRanger,  Mu‐
37       tatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, Names‐
38       paceLifecycle,  NodeRestriction,  OwnerReferencesPermissionEnforcement,
39       PersistentVolumeClaimResize,  PersistentVolumeLabel,   PodNodeSelector,
40       PodSecurity,  PodTolerationRestriction,  Priority,  ResourceQuota, Run‐
41       timeClass, SecurityContextDeny, ServiceAccount,  StorageObjectInUsePro‐
42       tection,  TaintNodesByCondition,  ValidatingAdmissionPolicy, Validatin‐
43       gAdmissionWebhook.
44
45
46       --admission-control-config-file=""       File  with  admission  control
47       configuration.
48
49
50       --advertise-address=       The  IP  address  on  which to advertise the
51       apiserver to members of the cluster. This address must be reachable  by
52       the  rest of the cluster. If blank, the --bind-address will be used. If
53       --bind-address is unspecified, the host's  default  interface  will  be
54       used.
55
56
57       --aggregator-reject-forwarding-redirect=true        Aggregator   reject
58       forwarding redirect response back to client.
59
60
61       --allow-metric-labels=[]      The map from metric-label to value allow-
62       list  of  this  label.  The  key's  format  is ,. The value's format is
63       ,...e.g.  metric1,label1='v1,v2,v3',   metric1,label2='v1,v2,v3'   met‐
64       ric2,label1='v1,v2,v3'.
65
66
67       --allow-privileged=false       If  true,  allow  privileged containers.
68       [default=false]
69
70
71       --anonymous-auth=true      Enables anonymous  requests  to  the  secure
72       port  of  the API server. Requests that are not rejected by another au‐
73       thentication method are treated as anonymous  requests.  Anonymous  re‐
74       quests  have  a  username of system:anonymous, and a group name of sys‐
75       tem:unauthenticated.
76
77
78       --api-audiences=[]      Identifiers of the API. The service account to‐
79       ken  authenticator  will  validate that tokens used against the API are
80       bound to at least one of these audiences. If the  --service-account-is‐
81       suer  flag is configured and this flag is not, this field defaults to a
82       single element list containing the issuer URL.
83
84
85       --apiserver-count=1      The number of apiservers running in the  clus‐
86       ter,  must  be  a  positive number. (In use when --endpoint-reconciler-
87       type=master-count is enabled.)
88
89
90       --audit-log-batch-buffer-size=10000      The  size  of  the  buffer  to
91       store events before batching and writing. Only used in batch mode.
92
93
94       --audit-log-batch-max-size=1       The  maximum  size  of a batch. Only
95       used in batch mode.
96
97
98       --audit-log-batch-max-wait=0s      The amount of time  to  wait  before
99       force  writing the batch that hadn't reached the max size. Only used in
100       batch mode.
101
102
103       --audit-log-batch-throttle-burst=0      Maximum number of requests sent
104       at the same moment if ThrottleQPS was not utilized before. Only used in
105       batch mode.
106
107
108       --audit-log-batch-throttle-enable=false       Whether  batching  throt‐
109       tling is enabled. Only used in batch mode.
110
111
112       --audit-log-batch-throttle-qps=0      Maximum average number of batches
113       per second. Only used in batch mode.
114
115
116       --audit-log-compress=false      If set, the rotated log files  will  be
117       compressed using gzip.
118
119
120       --audit-log-format="json"       Format  of saved audits. "legacy" indi‐
121       cates 1-line text format for each event.  "json"  indicates  structured
122       json format. Known formats are legacy,json.
123
124
125       --audit-log-maxage=0       The maximum number of days to retain old au‐
126       dit log files based on the timestamp encoded in their filename.
127
128
129       --audit-log-maxbackup=0      The maximum number of old audit log  files
130       to retain. Setting a value of 0 will mean there's no restriction on the
131       number of files.
132
133
134       --audit-log-maxsize=0      The maximum size in megabytes of  the  audit
135       log file before it gets rotated.
136
137
138       --audit-log-mode="blocking"       Strategy  for  sending  audit events.
139       Blocking indicates sending events should block server responses.  Batch
140       causes  the  backend  to  buffer and write events asynchronously. Known
141       modes are batch,blocking,blocking-strict.
142
143
144       --audit-log-path=""      If set, all requests coming to  the  apiserver
145       will be logged to this file.  '-' means standard out.
146
147
148       --audit-log-truncate-enabled=false       Whether  event and batch trun‐
149       cating is enabled.
150
151
152       --audit-log-truncate-max-batch-size=10485760      Maximum size  of  the
153       batch  sent  to  the  underlying backend. Actual serialized size can be
154       several hundreds of bytes greater. If a batch exceeds this limit, it is
155       split into several batches of smaller size.
156
157
158       --audit-log-truncate-max-event-size=102400      Maximum size of the au‐
159       dit event sent to the underlying backend. If the size of  an  event  is
160       greater  than  this number, first request and response are removed, and
161       if this doesn't reduce the size enough, event is discarded.
162
163
164       --audit-log-version="audit.k8s.io/v1"      API group and  version  used
165       for serializing audit events written to log.
166
167
168       --audit-policy-file=""       Path  to  the  file that defines the audit
169       policy configuration.
170
171
172       --audit-webhook-batch-buffer-size=10000      The size of the buffer  to
173       store events before batching and writing. Only used in batch mode.
174
175
176       --audit-webhook-batch-initial-backoff=10s       The  amount  of time to
177       wait before retrying the first failed request.
178
179
180       --audit-webhook-batch-max-size=400      The maximum size  of  a  batch.
181       Only used in batch mode.
182
183
184       --audit-webhook-batch-max-wait=30s       The amount of time to wait be‐
185       fore force writing the batch that hadn't reached  the  max  size.  Only
186       used in batch mode.
187
188
189       --audit-webhook-batch-throttle-burst=15      Maximum number of requests
190       sent at the same moment if ThrottleQPS was not  utilized  before.  Only
191       used in batch mode.
192
193
194       --audit-webhook-batch-throttle-enable=true      Whether batching throt‐
195       tling is enabled. Only used in batch mode.
196
197
198       --audit-webhook-batch-throttle-qps=10      Maximum  average  number  of
199       batches per second. Only used in batch mode.
200
201
202       --audit-webhook-config-file=""      Path to a kubeconfig formatted file
203       that defines the audit webhook configuration.
204
205
206       --audit-webhook-initial-backoff=10s      The amount of time to wait be‐
207       fore retrying the first failed request.
208
209
210       --audit-webhook-mode="batch"       Strategy  for  sending audit events.
211       Blocking indicates sending events should block server responses.  Batch
212       causes  the  backend  to  buffer and write events asynchronously. Known
213       modes are batch,blocking,blocking-strict.
214
215
216       --audit-webhook-truncate-enabled=false       Whether  event  and  batch
217       truncating is enabled.
218
219
220       --audit-webhook-truncate-max-batch-size=10485760       Maximum  size of
221       the batch sent to the underlying backend. Actual serialized size can be
222       several hundreds of bytes greater. If a batch exceeds this limit, it is
223       split into several batches of smaller size.
224
225
226       --audit-webhook-truncate-max-event-size=102400      Maximum size of the
227       audit  event sent to the underlying backend. If the size of an event is
228       greater than this number, first request and response are  removed,  and
229       if this doesn't reduce the size enough, event is discarded.
230
231
232       --audit-webhook-version="audit.k8s.io/v1"       API  group  and version
233       used for serializing audit events written to webhook.
234
235
236       --authentication-token-webhook-cache-ttl=2m0s       The   duration   to
237       cache responses from the webhook token authenticator.
238
239
240       --authentication-token-webhook-config-file=""       File  with  webhook
241       configuration for token authentication in kubeconfig  format.  The  API
242       server  will  query  the remote service to determine authentication for
243       bearer tokens.
244
245
246       --authentication-token-webhook-version="v1beta1"      The  API  version
247       of the authentication.k8s.io TokenReview to send to and expect from the
248       webhook.
249
250
251       --authorization-mode=[AlwaysAllow]      Ordered list of plug-ins to  do
252       authorization  on secure port. Comma-delimited list of: AlwaysAllow,Al‐
253       waysDeny,ABAC,Webhook,RBAC,Node.
254
255
256       --authorization-policy-file=""      File with authorization  policy  in
257       json  line  by line format, used with --authorization-mode=ABAC, on the
258       secure port.
259
260
261       --authorization-webhook-cache-authorized-ttl=5m0s      The duration  to
262       cache 'authorized' responses from the webhook authorizer.
263
264
265       --authorization-webhook-cache-unauthorized-ttl=30s      The duration to
266       cache 'unauthorized' responses from the webhook authorizer.
267
268
269       --authorization-webhook-config-file=""      File with webhook  configu‐
270       ration  in  kubeconfig  format, used with --authorization-mode=Webhook.
271       The API server will query the remote service to determine access on the
272       API server's secure port.
273
274
275       --authorization-webhook-version="v1beta1"       The  API version of the
276       authorization.k8s.io SubjectAccessReview to send to and expect from the
277       webhook.
278
279
280       --azure-container-registry-config=""       Path  to the file containing
281       Azure container registry configuration information.
282
283
284       --bind-address=0.0.0.0      The IP address on which to listen  for  the
285       --secure-port  port.  The  associated interface(s) must be reachable by
286       the rest of the cluster, and by CLI/web clients. If blank or an unspec‐
287       ified address (0.0.0.0 or ::), all interfaces will be used.
288
289
290       --cert-dir="/var/run/kubernetes"      The directory where the TLS certs
291       are located. If --tls-cert-file  and  --tls-private-key-file  are  pro‐
292       vided, this flag will be ignored.
293
294
295       --client-ca-file=""       If  set, any request presenting a client cer‐
296       tificate signed by one of the authorities in the client-ca-file is  au‐
297       thenticated  with  an  identity  corresponding to the CommonName of the
298       client certificate.
299
300
301       --cloud-config=""      The path to  the  cloud  provider  configuration
302       file. Empty string for no configuration file.
303
304
305       --cloud-provider=""       The provider for cloud services. Empty string
306       for no provider.
307
308
309       --cloud-provider-gce-l7lb-src-cidrs=130.211.0.0/22,35.191.0.0/16
310            CIDRs  opened  in  GCE  firewall  for L7 LB traffic proxy & health
311       checks
312
313
314       --cloud-provider-gce-lb-src-
315       cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
316            CIDRs opened in GCE firewall for L4  LB  traffic  proxy  &  health
317       checks
318
319
320       --contention-profiling=false       Enable lock contention profiling, if
321       profiling is enabled
322
323
324       --cors-allowed-origins=[]      List of allowed origins for CORS,  comma
325       separated.   An  allowed  origin can be a regular expression to support
326       subdomain matching. If this list is empty CORS will not be enabled.
327
328
329       --default-not-ready-toleration-seconds=300      Indicates  the  tolera‐
330       tionSeconds  of  the toleration for notReady:NoExecute that is added by
331       default to every pod that does not already have such a toleration.
332
333
334       --default-unreachable-toleration-seconds=300      Indicates the tolera‐
335       tionSeconds  of  the toleration for unreachable:NoExecute that is added
336       by default to every pod that does not already have such a toleration.
337
338
339       --default-watch-cache-size=100      Default watch cache size. If  zero,
340       watch  cache  will be disabled for resources that do not have a default
341       watch size set.
342
343
344       --delete-collection-workers=1       Number  of  workers   spawned   for
345       DeleteCollection call. These are used to speed up namespace cleanup.
346
347
348       --disable-admission-plugins=[]       admission  plugins  that should be
349       disabled although they are in the default enabled plugins list  (Names‐
350       paceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, Pod‐
351       Security,  Priority,   DefaultTolerationSeconds,   DefaultStorageClass,
352       StorageObjectInUseProtection,   PersistentVolumeClaimResize,   Runtime‐
353       Class, CertificateApproval,  CertificateSigning,  CertificateSubjectRe‐
354       striction, DefaultIngressClass, MutatingAdmissionWebhook, ValidatingAd‐
355       missionPolicy, ValidatingAdmissionWebhook, ResourceQuota). Comma-delim‐
356       ited  list of admission plugins: AlwaysAdmit, AlwaysDeny, AlwaysPullIm‐
357       ages,  CertificateApproval,  CertificateSigning,  CertificateSubjectRe‐
358       striction,   DefaultIngressClass,  DefaultStorageClass,  DefaultTolera‐
359       tionSeconds, DenyServiceExternalIPs, EventRateLimit,  ExtendedResource‐
360       Toleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, Limi‐
361       tRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceEx‐
362       ists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEn‐
363       forcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNode‐
364       Selector,  PodSecurity,  PodTolerationRestriction,  Priority, Resource‐
365       Quota, RuntimeClass,  SecurityContextDeny,  ServiceAccount,  StorageOb‐
366       jectInUseProtection,  TaintNodesByCondition, ValidatingAdmissionPolicy,
367       ValidatingAdmissionWebhook. The order of plugins in this flag does  not
368       matter.
369
370
371       --disabled-metrics=[]       This flag provides an escape hatch for mis‐
372       behaving metrics. You must provide the fully qualified metric  name  in
373       order  to disable it. Disclaimer: disabling metrics is higher in prece‐
374       dence than showing hidden metrics.
375
376
377       --egress-selector-config-file=""      File with apiserver egress selec‐
378       tor configuration.
379
380
381       --enable-admission-plugins=[]      admission plugins that should be en‐
382       abled in addition to default enabled  ones  (NamespaceLifecycle,  Limi‐
383       tRanger,  ServiceAccount, TaintNodesByCondition, PodSecurity, Priority,
384       DefaultTolerationSeconds,  DefaultStorageClass,  StorageObjectInUsePro‐
385       tection,   PersistentVolumeClaimResize,   RuntimeClass,  CertificateAp‐
386       proval, CertificateSigning,  CertificateSubjectRestriction,  DefaultIn‐
387       gressClass,  MutatingAdmissionWebhook, ValidatingAdmissionPolicy, Vali‐
388       datingAdmissionWebhook, ResourceQuota). Comma-delimited list of  admis‐
389       sion plugins: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateAp‐
390       proval, CertificateSigning,  CertificateSubjectRestriction,  DefaultIn‐
391       gressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyService‐
392       ExternalIPs, EventRateLimit,  ExtendedResourceToleration,  ImagePolicy‐
393       Webhook,  LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmis‐
394       sionWebhook, NamespaceAutoProvision, NamespaceExists,  NamespaceLifecy‐
395       cle,   NodeRestriction,  OwnerReferencesPermissionEnforcement,  Persis‐
396       tentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodSecu‐
397       rity,  PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass,
398       SecurityContextDeny,   ServiceAccount,    StorageObjectInUseProtection,
399       TaintNodesByCondition,  ValidatingAdmissionPolicy, ValidatingAdmission‐
400       Webhook. The order of plugins in this flag does not matter.
401
402
403       --enable-aggregator-routing=false      Turns on aggregator routing  re‐
404       quests to endpoints IP rather than cluster IP.
405
406
407       --enable-bootstrap-token-auth=false       Enable  to  allow  secrets of
408       type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace  to
409       be used for TLS bootstrapping authentication.
410
411
412       --enable-garbage-collector=true       Enables  the generic garbage col‐
413       lector. MUST be synced with the corresponding  flag  of  the  kube-con‐
414       troller-manager.
415
416
417       --enable-logs-handler=true       If  true,  install a /logs handler for
418       the apiserver logs.
419
420
421       --enable-priority-and-fairness=true       If  true  and  the  APIPrior‐
422       ityAndFairness  feature gate is enabled, replace the max-in-flight han‐
423       dler with an enhanced one that queues and dispatches with priority  and
424       fairness
425
426
427       --encryption-provider-config=""       The file containing configuration
428       for encryption providers to be used for storing secrets in etcd
429
430
431       --encryption-provider-config-automatic-reload=false      Determines  if
432       the  file  set  by --encryption-provider-config should be automatically
433       reloaded if the disk contents change. Setting this to true disables the
434       ability  to  uniquely  identify distinct KMS plugins via the API server
435       healthz endpoints.
436
437
438       --endpoint-reconciler-type="lease"       Use  an  endpoint   reconciler
439       (master-count, lease, none) master-count is deprecated, and will be re‐
440       moved in a future version.
441
442
443       --etcd-cafile=""      SSL Certificate Authority  file  used  to  secure
444       etcd communication.
445
446
447       --etcd-certfile=""      SSL certification file used to secure etcd com‐
448       munication.
449
450
451       --etcd-compaction-interval=5m0s      The  interval  of  compaction  re‐
452       quests. If 0, the compaction request from apiserver is disabled.
453
454
455       --etcd-count-metric-poll-period=1m0s      Frequency of polling etcd for
456       number of resources per type. 0 disables the metric collection.
457
458
459       --etcd-db-metric-poll-interval=30s      The  interval  of  requests  to
460       poll etcd and update metric. 0 disables the metric collection
461
462
463       --etcd-healthcheck-timeout=2s       The  timeout  to  use when checking
464       etcd health.
465
466
467       --etcd-keyfile=""      SSL key file used to secure etcd communication.
468
469
470       --etcd-prefix="/registry"      The prefix to prepend  to  all  resource
471       paths in etcd.
472
473
474       --etcd-readycheck-timeout=2s      The timeout to use when checking etcd
475       readiness
476
477
478       --etcd-servers=[]       List  of   etcd   servers   to   connect   with
479       (scheme://ip:port), comma separated.
480
481
482       --etcd-servers-overrides=[]       Per-resource  etcd servers overrides,
483       comma   separated.   The   individual   override   format:    group/re‐
484       source#servers,  where servers are URLs, semicolon separated. Note that
485       this applies only to resources compiled into this server binary.
486
487
488       --event-ttl=1h0m0s      Amount of time to retain events.
489
490
491       --external-hostname=""      The hostname to use when generating  exter‐
492       nalized  URLs  for this master (e.g. Swagger API Docs or OpenID Discov‐
493       ery).
494
495
496       --feature-gates=      A set of key=value pairs  that  describe  feature
497       gates  for  alpha/experimental  features.  Options  are:  APIListChunk‐
498       ing=true|false (BETA - default=true)  APIPriorityAndFairness=true|false
499       (BETA  -  default=true)  APIResponseCompression=true|false  (BETA - de‐
500       fault=true)  APISelfSubjectReview=true|false  (ALPHA  -  default=false)
501       APIServerIdentity=true|false   (BETA   -  default=true)  APIServerTrac‐
502       ing=true|false   (ALPHA   -   default=false)    AggregatedDiscoveryEnd‐
503       point=true|false  (ALPHA  - default=false) AllAlpha=true|false (ALPHA -
504       default=false) AllBeta=true|false (BETA - default=false) AnyVolumeData‐
505       Source=true|false (BETA - default=true) AppArmor=true|false (BETA - de‐
506       fault=true)  CPUManagerPolicyAlphaOptions=true|false   (ALPHA   -   de‐
507       fault=false)   CPUManagerPolicyBetaOptions=true|false   (BETA   -   de‐
508       fault=true) CPUManagerPolicyOptions=true|false  (BETA  -  default=true)
509       CSIMigrationPortworx=true|false   (BETA   -   default=false)  CSIMigra‐
510       tionRBD=true|false    (ALPHA    -    default=false)    CSINodeExpandSe‐
511       cret=true|false (ALPHA - default=false) CSIVolumeHealth=true|false (AL‐
512       PHA - default=false) ComponentSLIs=true|false (ALPHA  -  default=false)
513       ContainerCheckpoint=true|false  (ALPHA  - default=false) ContextualLog‐
514       ging=true|false  (ALPHA  -  default=false)   CronJobTimeZone=true|false
515       (BETA  - default=true) CrossNamespaceVolumeDataSource=true|false (ALPHA
516       -  default=false)  CustomCPUCFSQuotaPeriod=true|false  (ALPHA   -   de‐
517       fault=false) CustomResourceValidationExpressions=true|false (BETA - de‐
518       fault=true) DisableCloudProviders=true|false  (ALPHA  -  default=false)
519       DisableKubeletCloudCredentialProviders=true|false    (ALPHA    -    de‐
520       fault=false) DownwardAPIHugePages=true|false (BETA - default=true)  Dy‐
521       namicResourceAllocation=true|false  (ALPHA  -  default=false) EventedP‐
522       LEG=true|false  (ALPHA  -  default=false)  ExpandedDNSConfig=true|false
523       (BETA     -     default=true)     ExperimentalHostUserNamespaceDefault‐
524       ing=true|false  (BETA  -  default=false)  GRPCContainerProbe=true|false
525       (BETA  -  default=true)  GracefulNodeShutdown=true|false  (BETA  -  de‐
526       fault=true) GracefulNodeShutdownBasedOnPodPriority=true|false  (BETA  -
527       default=true)  HPAContainerMetrics=true|false  (ALPHA  - default=false)
528       HPAScaleToZero=true|false (ALPHA  -  default=false)  HonorPVReclaimPol‐
529       icy=true|false     (ALPHA     -    default=false)    IPTablesOwnership‐
530       Cleanup=true|false  (ALPHA  -  default=false)   InTreePluginAWSUnregis‐
531       ter=true|false  (ALPHA  -  default=false) InTreePluginAzureDiskUnregis‐
532       ter=true|false (ALPHA  -  default=false)  InTreePluginAzureFileUnregis‐
533       ter=true|false    (ALPHA   -   default=false)   InTreePluginGCEUnregis‐
534       ter=true|false (ALPHA  -  default=false)  InTreePluginOpenStackUnregis‐
535       ter=true|false  (ALPHA  -  default=false)  InTreePluginPortworxUnregis‐
536       ter=true|false   (ALPHA   -   default=false)    InTreePluginRBDUnregis‐
537       ter=true|false   (ALPHA  -  default=false)  InTreePluginvSphereUnregis‐
538       ter=true|false (ALPHA -  default=false)  JobMutableNodeSchedulingDirec‐
539       tives=true|false  (BETA  - default=true) JobPodFailurePolicy=true|false
540       (BETA - default=true)  JobReadyPods=true|false  (BETA  -  default=true)
541       KMSv2=true|false    (ALPHA    -    default=false)   KubeletInUserNames‐
542       pace=true|false (ALPHA - default=false)  KubeletPodResources=true|false
543       (BETA   -   default=true)  KubeletPodResourcesGetAllocatable=true|false
544       (BETA - default=true) KubeletTracing=true|false (ALPHA - default=false)
545       LegacyServiceAccountTokenTracking=true|false  (ALPHA  -  default=false)
546       LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA -  de‐
547       fault=false) LogarithmicScaleDown=true|false (BETA - default=true) Log‐
548       gingAlphaOptions=true|false  (ALPHA  -  default=false)   LoggingBetaOp‐
549       tions=true|false   (BETA   -  default=true)  MatchLabelKeysInPodTopolo‐
550       gySpread=true|false  (ALPHA   -   default=false)   MaxUnavailableState‐
551       fulSet=true|false   (ALPHA  -  default=false)  MemoryManager=true|false
552       (BETA - default=true) MemoryQoS=true|false (ALPHA - default=false) Min‐
553       DomainsInPodTopologySpread=true|false   (BETA  -  default=false)  Mini‐
554       mizeIPTablesRestore=true|false  (ALPHA  -   default=false)   MultiCIDR‐
555       RangeAllocator=true|false  (ALPHA  -  default=false)  NetworkPolicySta‐
556       tus=true|false (ALPHA - default=false)  NodeInclusionPolicyInPodTopolo‐
557       gySpread=true|false  (BETA  -  default=true)  NodeOutOfServiceVolumeDe‐
558       tach=true|false (BETA - default=true) NodeSwap=true|false (ALPHA -  de‐
559       fault=false)   OpenAPIEnums=true|false   (BETA   -  default=true)  Ope‐
560       nAPIV3=true|false  (BETA  -  default=true)  PDBUnhealthyPodEvictionPol‐
561       icy=true|false   (ALPHA   -   default=false)  PodAndContainerStatsFrom‐
562       CRI=true|false (ALPHA - default=false) PodDeletionCost=true|false (BETA
563       -   default=true)   PodDisruptionConditions=true|false   (BETA   -  de‐
564       fault=true) PodHasNetworkCondition=true|false (ALPHA  -  default=false)
565       PodSchedulingReadiness=true|false (ALPHA - default=false) ProbeTermina‐
566       tionGracePeriod=true|false    (BETA    -    default=true)    ProcMount‐
567       Type=true|false    (ALPHA    -    default=false)   ProxyTerminatingEnd‐
568       points=true|false (BETA - default=true) QOSReserved=true|false (ALPHA -
569       default=false)  ReadWriteOncePod=true|false (ALPHA - default=false) Re‐
570       coverVolumeExpansionFailure=true|false (ALPHA - default=false)  Remain‐
571       ingItemCount=true|false  (BETA  - default=true) RetroactiveDefaultStor‐
572       ageClass=true|false (BETA -  default=true)  RotateKubeletServerCertifi‐
573       cate=true|false   (BETA   -   default=true)  SELinuxMountReadWriteOnce‐
574       Pod=true|false (ALPHA - default=false) SeccompDefault=true|false  (BETA
575       -   default=true)   ServerSideFieldValidation=true|false  (BETA  -  de‐
576       fault=true) SizeMemoryBackedVolumes=true|false  (BETA  -  default=true)
577       StatefulSetAutoDeletePVC=true|false   (ALPHA  -  default=false)  State‐
578       fulSetStartOrdinal=true|false (ALPHA -  default=false)  StorageVersion‐
579       API=true|false  (ALPHA  -  default=false) StorageVersionHash=true|false
580       (BETA  -  default=true)  TopologyAwareHints=true|false  (BETA   -   de‐
581       fault=true)  TopologyManager=true|false (BETA - default=true) Topology‐
582       ManagerPolicyAlphaOptions=true|false (ALPHA - default=false)  Topology‐
583       ManagerPolicyBetaOptions=true|false (BETA - default=false) TopologyMan‐
584       agerPolicyOptions=true|false (ALPHA -  default=false)  Unauthenticated‐
585       HTTP2DOSMitigation=true|false   (BETA   -   default=false)   UserNames‐
586       pacesStatelessPodsSupport=true|false (ALPHA - default=false) Validatin‐
587       gAdmissionPolicy=true|false  (ALPHA - default=false) VolumeCapacityPri‐
588       ority=true|false (ALPHA - default=false) WinDSR=true|false (ALPHA - de‐
589       fault=false)  WinOverlay=true|false  (BETA - default=true) WindowsHost‐
590       Network=true|false (ALPHA - default=true)
591
592
593       --goaway-chance=0      To prevent HTTP/2 clients from getting stuck  on
594       a  single apiserver, randomly close a connection (GOAWAY). The client's
595       other in-flight requests won't be affected, and the client will  recon‐
596       nect,  likely  landing on a different apiserver after going through the
597       load balancer again. This argument sets the fraction of  requests  that
598       will  be sent a GOAWAY. Clusters with single apiservers, or which don't
599       use a load balancer, should NOT enable this. Min is 0 (off), Max is .02
600       (1/50 requests); .001 (1/1000) is a recommended starting point.
601
602
603       -h, --help=false      help for kube-apiserver
604
605
606       --http2-max-streams-per-connection=0       The  limit  that  the server
607       gives to clients for the maximum number of streams in an HTTP/2 connec‐
608       tion. Zero means to use golang's default.
609
610
611       --kubelet-certificate-authority=""       Path  to  a  cert file for the
612       certificate authority.
613
614
615       --kubelet-client-certificate=""      Path to a  client  cert  file  for
616       TLS.
617
618
619       --kubelet-client-key=""      Path to a client key file for TLS.
620
621
622       --kubelet-port=10250      DEPRECATED: kubelet port.
623
624
625       --kubelet-preferred-address-types=[Hostname,InternalDNS,InternalIP,Ex‐
626       ternalDNS,ExternalIP]      List of the  preferred  NodeAddressTypes  to
627       use for kubelet connections.
628
629
630       --kubelet-read-only-port=10255      DEPRECATED: kubelet read only port.
631
632
633       --kubelet-timeout=5s      Timeout for kubelet operations.
634
635
636       --kubernetes-service-node-port=0       If non-zero, the Kubernetes mas‐
637       ter service (which apiserver creates/maintains) will be of  type  Node‐
638       Port, using this as the value of the port. If zero, the Kubernetes mas‐
639       ter service will be of type ClusterIP.
640
641
642       --lease-reuse-duration-seconds=60      The time in  seconds  that  each
643       lease  is  reused.  A  lower  value could avoid large number of objects
644       reusing the same lease. Notice that a too small value may cause perfor‐
645       mance problems at storage layer.
646
647
648       --livez-grace-period=0s       This option represents the maximum amount
649       of time it should take for apiserver to complete its  startup  sequence
650       and  become  live.  From  apiserver's start time to when this amount of
651       time has elapsed, /livez will assume that unfinished  post-start  hooks
652       will complete successfully and therefore return true.
653
654
655       --log-flush-frequency=5s       Maximum  number  of  seconds between log
656       flushes
657
658
659       --logging-format="text"      Sets the log  format.  Permitted  formats:
660       "text".
661
662
663       --master-service-namespace="default"        DEPRECATED:  the  namespace
664       from which the Kubernetes master services should be injected into pods.
665
666
667       --max-connection-bytes-per-sec=0      If non-zero, throttle  each  user
668       connection to this number of bytes/sec. Currently only applies to long-
669       running requests.
670
671
672       --max-mutating-requests-inflight=200      This  and  --max-requests-in‐
673       flight  are  summed  to  determine the server's total concurrency limit
674       (which must be positive)  if  --enable-priority-and-fairness  is  true.
675       Otherwise,  this flag limits the maximum number of mutating requests in
676       flight, or a zero value disables the limit completely.
677
678
679       --max-requests-inflight=400      This  and  --max-mutating-requests-in‐
680       flight  are  summed  to  determine the server's total concurrency limit
681       (which must be positive)  if  --enable-priority-and-fairness  is  true.
682       Otherwise, this flag limits the maximum number of non-mutating requests
683       in flight, or a zero value disables the limit completely.
684
685
686       --min-request-timeout=1800      An optional field indicating the  mini‐
687       mum  number of seconds a handler must keep a request open before timing
688       it out. Currently only honored by  the  watch  request  handler,  which
689       picks  a  randomized value above this number as the connection timeout,
690       to spread out load.
691
692
693       --oidc-ca-file=""      If set, the OpenID server's certificate will  be
694       verified  by  one of the authorities in the oidc-ca-file, otherwise the
695       host's root CA set will be used.
696
697
698       --oidc-client-id=""      The client ID for the OpenID  Connect  client,
699       must be set if oidc-issuer-url is set.
700
701
702       --oidc-groups-claim=""       If  provided,  the name of a custom OpenID
703       Connect claim for specifying user groups. The claim value  is  expected
704       to  be  a string or array of strings. This flag is experimental, please
705       see the authentication documentation for further details.
706
707
708       --oidc-groups-prefix=""      If provided, all groups will  be  prefixed
709       with  this value to prevent conflicts with other authentication strate‐
710       gies.
711
712
713       --oidc-issuer-url=""      The URL of  the  OpenID  issuer,  only  HTTPS
714       scheme  will  be  accepted.  If set, it will be used to verify the OIDC
715       JSON Web Token (JWT).
716
717
718       --oidc-required-claim=      A key=value pair that describes a  required
719       claim  in  the ID Token. If set, the claim is verified to be present in
720       the ID Token with a matching value. Repeat this flag to specify  multi‐
721       ple claims.
722
723
724       --oidc-signing-algs=[RS256]       Comma-separated  list of allowed JOSE
725       asymmetric signing algorithms. JWTs with a supported 'alg' header  val‐
726       ues are: RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512.
727       Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#sec‐
728       tion-3.1.
729
730
731       --oidc-username-claim="sub"       The  OpenID  claim to use as the user
732       name. Note that claims other than the default ('sub') is not guaranteed
733       to  be  unique and immutable. This flag is experimental, please see the
734       authentication documentation for further details.
735
736
737       --oidc-username-prefix=""      If provided, all usernames will be  pre‐
738       fixed  with  this  value.  If  not provided, username claims other than
739       'email' are prefixed by the issuer URL to avoid clashes.  To  skip  any
740       prefixing, provide the value '-'.
741
742
743       --permit-address-sharing=false       If true, SO_REUSEADDR will be used
744       when binding the port. This allows binding to wildcard IPs like 0.0.0.0
745       and  specific  IPs in parallel, and it avoids waiting for the kernel to
746       release sockets in TIME_WAIT state. [default=false]
747
748
749       --permit-port-sharing=false      If true,  SO_REUSEPORT  will  be  used
750       when  binding  the port, which allows more than one instance to bind on
751       the same address and port. [default=false]
752
753
754       --profiling=true      Enable profiling via web interface  host:port/de‐
755       bug/pprof/
756
757
758       --proxy-client-cert-file=""       Client  certificate used to prove the
759       identity of the aggregator or kube-apiserver when it must call out dur‐
760       ing a request. This includes proxying requests to a user api-server and
761       calling out to webhook admission plugins. It is expected that this cert
762       includes  a signature from the CA in the --requestheader-client-ca-file
763       flag. That CA is published in the  'extension-apiserver-authentication'
764       configmap in the kube-system namespace. Components receiving calls from
765       kube-aggregator should use that CA to perform their half of the  mutual
766       TLS verification.
767
768
769       --proxy-client-key-file=""       Private key for the client certificate
770       used to prove the identity of the aggregator or kube-apiserver when  it
771       must  call  out  during a request. This includes proxying requests to a
772       user api-server and calling out to webhook admission plugins.
773
774
775       --request-timeout=1m0s      An optional field indicating the duration a
776       handler  must keep a request open before timing it out. This is the de‐
777       fault request timeout for requests but may be overridden by flags  such
778       as --min-request-timeout for specific types of requests.
779
780
781       --requestheader-allowed-names=[]      List of client certificate common
782       names to allow to provide usernames in headers specified by  --request‐
783       header-username-headers.  If empty, any client certificate validated by
784       the authorities in --requestheader-client-ca-file is allowed.
785
786
787       --requestheader-client-ca-file=""      Root certificate bundle  to  use
788       to  verify  client  certificates  on  incoming requests before trusting
789       usernames in  headers  specified  by  --requestheader-username-headers.
790       WARNING:  generally  do  not depend on authorization being already done
791       for incoming requests.
792
793
794       --requestheader-extra-headers-prefix=[]       List  of  request  header
795       prefixes to inspect. X-Remote-Extra- is suggested.
796
797
798       --requestheader-group-headers=[]       List  of  request headers to in‐
799       spect for groups. X-Remote-Group is suggested.
800
801
802       --requestheader-username-headers=[]      List of request headers to in‐
803       spect for usernames. X-Remote-User is common.
804
805
806       --runtime-config=       A set of key=value pairs that enable or disable
807       built-in APIs. Supported options are: v1=true|false for  the  core  API
808       group   /=true|false  for  a  specific  API  group  and  version  (e.g.
809       apps/v1=true)   api/all=true|false   controls    all    API    versions
810       api/ga=true|false  controls  all  API  versions  of  the  form  v[0-9]+
811       api/beta=true|false   controls   all   API   versions   of   the   form
812       v[0-9]+beta[0-9]+ api/alpha=true|false controls all API versions of the
813       form v[0-9]+alpha[0-9]+ api/legacy is deprecated, and will  be  removed
814       in a future version
815
816
817       --secure-port=6443      The port on which to serve HTTPS with authenti‐
818       cation and authorization. It cannot be switched off with 0.
819
820
821       --service-account-extend-token-expiration=true      Turns on  projected
822       service  account  expiration  extension  during token generation, which
823       helps safe transition from legacy token to bound service account  token
824       feature.  If  this  flag is enabled, admission injected tokens would be
825       extended up to 1 year to prevent unexpected failure during  transition,
826       ignoring value of service-account-max-token-expiration.
827
828
829       --service-account-issuer=[]       Identifier of the service account to‐
830       ken issuer. The issuer will assert this identifier in  "iss"  claim  of
831       issued  tokens.  This value is a string or URI. If this option is not a
832       valid URI per the OpenID  Discovery  1.0  spec,  the  ServiceAccountIs‐
833       suerDiscovery feature will remain disabled, even if the feature gate is
834       set to true. It is highly recommended that this value comply  with  the
835       OpenID       spec:      https://openid.net/specs/openid-connect-discov
836       ery-1_0.html. In practice, this means that service-account-issuer  must
837       be an https URL. It is also highly recommended that this URL be capable
838       of  serving  OpenID   discovery   documents   at   {service-account-is‐
839       suer}/.well-known/openid-configuration.  When  this  flag  is specified
840       multiple times, the first is used to generate tokens and all  are  used
841       to determine which issuers are accepted.
842
843
844       --service-account-jwks-uri=""       Overrides  the URI for the JSON Web
845       Key Set in the discovery doc served  at  /.well-known/openid-configura‐
846       tion. This flag is useful if the discovery docand key set are served to
847       relying parties from a URL other than the  API  server's  external  (as
848       auto-detected or overridden with external-hostname).
849
850
851       --service-account-key-file=[]      File containing PEM-encoded x509 RSA
852       or ECDSA private or public keys, used to verify ServiceAccount  tokens.
853       The specified file can contain multiple keys, and the flag can be spec‐
854       ified multiple times with different files. If  unspecified,  --tls-pri‐
855       vate-key-file  is  used. Must be specified when --service-account-sign‐
856       ing-key-file is provided
857
858
859       --service-account-lookup=true      If true, validate ServiceAccount to‐
860       kens exist in etcd as part of authentication.
861
862
863       --service-account-max-token-expiration=0s      The maximum validity du‐
864       ration of a token created by the service account token  issuer.  If  an
865       otherwise  valid TokenRequest with a validity duration larger than this
866       value is requested, a token will be issued with a validity duration  of
867       this value.
868
869
870       --service-account-signing-key-file=""       Path  to the file that con‐
871       tains the current private key of the service account token issuer.  The
872       issuer will sign issued ID tokens with this private key.
873
874
875       --service-cluster-ip-range=""       A CIDR notation IP range from which
876       to assign service cluster IPs. This must not overlap with any IP ranges
877       assigned to nodes or pods. Max of two dual-stack CIDRs is allowed.
878
879
880       --service-node-port-range=30000-32767       A port range to reserve for
881       services with NodePort visibility.  This  must  not  overlap  with  the
882       ephemeral  port  range  on nodes.  Example: '30000-32767'. Inclusive at
883       both ends of the range.
884
885
886       --show-hidden-metrics-for-version=""       The  previous  version   for
887       which  you want to show hidden metrics. Only the previous minor version
888       is meaningful, other values will not be allowed. The format is ., e.g.:
889       '1.16'.  The  purpose of this format is make sure you have the opportu‐
890       nity to notice if the next release  hides  additional  metrics,  rather
891       than  being  surprised when they are permanently removed in the release
892       after that.
893
894
895       --shutdown-delay-duration=0s      Time to delay the termination. During
896       that  time  the  server  keeps serving requests normally. The endpoints
897       /healthz and /livez will return success, but  /readyz  immediately  re‐
898       turns  failure.  Graceful  termination  starts  after  this  delay  has
899       elapsed. This can be used to allow load balancer to stop sending  traf‐
900       fic to this server.
901
902
903       --shutdown-send-retry-after=false       If  true  the  HTTP Server will
904       continue listening until all non long running request(s) in flight have
905       been drained, during this window all incoming requests will be rejected
906       with a status code 429 and a 'Retry-After' response header, in addition
907       'Connection:  close'  response  header is set in order to tear down the
908       TCP connection when idle.
909
910
911       --storage-backend=""      The storage backend for persistence. Options:
912       'etcd3' (default).
913
914
915       --storage-media-type="application/vnd.kubernetes.protobuf"      The me‐
916       dia type to use to store objects in storage. Some resources or  storage
917       backends  may  only  support a specific media type and will ignore this
918       setting. Supported media  types:  [application/json,  application/yaml,
919       application/vnd.kubernetes.protobuf]
920
921
922       --strict-transport-security-directives=[]       List  of directives for
923       HSTS, comma separated. If this list is empty, then HSTS directives will
924       not be added. Example: 'max-age=31536000,includeSubDomains,preload'
925
926
927       --tls-cert-file=""       File  containing  the default x509 Certificate
928       for HTTPS. (CA cert, if any, concatenated after server cert). If  HTTPS
929       serving  is enabled, and --tls-cert-file and --tls-private-key-file are
930       not provided, a self-signed certificate and key are generated  for  the
931       public address and saved to the directory specified by --cert-dir.
932
933
934       --tls-cipher-suites=[]       Comma-separated  list of cipher suites for
935       the server. If omitted, the default Go  cipher  suites  will  be  used.
936       Preferred   values:   TLS_AES_128_GCM_SHA256,   TLS_AES_256_GCM_SHA384,
937       TLS_CHACHA20_POLY1305_SHA256,     TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
938       TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
939       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
940       TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
941       TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
942       TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
943       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
944       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
945       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
946       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
947       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
948       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
949       TLS_RSA_WITH_AES_128_CBC_SHA,          TLS_RSA_WITH_AES_128_GCM_SHA256,
950       TLS_RSA_WITH_AES_256_CBC_SHA,  TLS_RSA_WITH_AES_256_GCM_SHA384.   Inse‐
951       cure          values:          TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
952       TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,  TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
953       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,  TLS_ECDHE_RSA_WITH_RC4_128_SHA,
954       TLS_RSA_WITH_3DES_EDE_CBC_SHA,         TLS_RSA_WITH_AES_128_CBC_SHA256,
955       TLS_RSA_WITH_RC4_128_SHA.
956
957
958       --tls-min-version=""      Minimum TLS version supported. Possible  val‐
959       ues: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
960
961
962       --tls-private-key-file=""      File containing the default x509 private
963       key matching --tls-cert-file.
964
965
966       --tls-sni-cert-key=[]      A pair of x509 certificate and  private  key
967       file  paths,  optionally  suffixed with a list of domain patterns which
968       are fully qualified domain names, possibly with prefixed wildcard  seg‐
969       ments. The domain patterns also allow IP addresses, but IPs should only
970       be used if the apiserver has visibility to the IP address requested  by
971       a client. If no domain patterns are provided, the names of the certifi‐
972       cate are extracted. Non-wildcard matches trump over  wildcard  matches,
973       explicit  domain  patterns  trump  over  extracted  names. For multiple
974       key/certificate pairs, use the --tls-sni-cert-key multiple times. Exam‐
975       ples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com".
976
977
978       --token-auth-file=""       If set, the file that will be used to secure
979       the secure port of the API server via token authentication.
980
981
982       --tracing-config-file=""      File with  apiserver  tracing  configura‐
983       tion.
984
985
986       -v, --v=0      number for the log level verbosity
987
988
989       --version=false      Print version information and quit
990
991
992       --vmodule=       comma-separated  list  of pattern=N settings for file-
993       filtered logging (only works for text log format)
994
995
996       --watch-cache=true      Enable watch caching in the apiserver
997
998
999       --watch-cache-sizes=[]      Watch cache  size  settings  for  some  re‐
1000       sources  (pods,  nodes,  etc.), comma separated. The individual setting
1001       format: resource[.group]#size, where resource is lowercase  plural  (no
1002       version),  group  is omitted for resources of apiVersion v1 (the legacy
1003       core API) and included for others, and size is a number. This option is
1004       only  meaningful  for  resources built into the apiserver, not ones de‐
1005       fined by CRDs or aggregated from external servers,  and  is  only  con‐
1006       sulted  if the watch-cache is enabled. The only meaningful size setting
1007       to supply here is zero, which means to disable watch  caching  for  the
1008       associated resource; all non-zero values are equivalent and mean to not
1009       disable watch caching for that resource
1010
1011
1012

HISTORY

1014       January 2015, Originally compiled by Eric Paris (eparis at  redhat  dot
1015       com)  based  on the kubernetes source material, but hopefully they have
1016       been automatically generated since!
1017
1018
1019
1020Manuals                              User            KUBERNETES(1)(kubernetes)
Impressum