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

HISTORY

1061       January  2015,  Originally compiled by Eric Paris (eparis at redhat dot
1062       com) based on the kubernetes source material, but hopefully  they  have
1063       been automatically generated since!
1064
1065
1066
1067Manuals                              User            KUBERNETES(1)(kubernetes)
Impressum