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