1KUBERNETES(1)(kubernetes) KUBERNETES(1)(kubernetes)
2
3
4
5Eric Paris Jan 2015
6
7
9 kube-apiserver -
10
11
12
14 kube-apiserver [OPTIONS]
15
16
17
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
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
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)