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 --address=127.0.0.1 The IP address on which to serve the insecure
32 port (set to 0.0.0.0 or :: for listening in all interfaces and IP fami‐
33 lies).
34
35
36 --admission-control=[] Admission is divided into two phases. In
37 the first phase, only mutating admission plugins run. In the second
38 phase, only validating admission plugins run. The names in the below
39 list may represent a validating plugin, a mutating plugin, or both. The
40 order of plugins in which they are passed to this flag does not matter.
41 Comma-delimited list of: AlwaysAdmit, AlwaysDeny, AlwaysPullImages,
42 CertificateApproval, CertificateSigning, CertificateSubjectRestriction,
43 DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds,
44 DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, Im‐
45 agePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, Mu‐
46 tatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, Names‐
47 paceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement,
48 PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector,
49 PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota,
50 RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUse‐
51 Protection, TaintNodesByCondition, ValidatingAdmissionWebhook.
52
53
54 --admission-control-config-file="" File with admission control
55 configuration.
56
57
58 --advertise-address= The IP address on which to advertise the
59 apiserver to members of the cluster. This address must be reachable by
60 the rest of the cluster. If blank, the --bind-address will be used. If
61 --bind-address is unspecified, the host's default interface will be
62 used.
63
64
65 --allow-metric-labels=[] The map from metric-label to value al‐
66 low-list of this label. The key's format is ,. The value's format is
67 ,...e.g. metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' met‐
68 ric2,label1='v1,v2,v3'.
69
70
71 --allow-privileged=false If true, allow privileged containers.
72 [default=false]
73
74
75 --alsologtostderr=false log to standard error as well as files
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-recon‐
94 ciler-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.
138
139
140 --audit-log-maxsize=0 The maximum size in megabytes of the audit
141 log file before it gets rotated.
142
143
144 --audit-log-mode="blocking" Strategy for sending audit events.
145 Blocking indicates sending events should block server responses. Batch
146 causes the backend to buffer and write events asynchronously. Known
147 modes are batch,blocking,blocking-strict.
148
149
150 --audit-log-path="" If set, all requests coming to the apiserver
151 will be logged to this file. '-' means standard out.
152
153
154 --audit-log-truncate-enabled=false Whether event and batch trun‐
155 cating is enabled.
156
157
158 --audit-log-truncate-max-batch-size=10485760 Maximum size of the
159 batch sent to the underlying backend. Actual serialized size can be
160 several hundreds of bytes greater. If a batch exceeds this limit, it is
161 split into several batches of smaller size.
162
163
164 --audit-log-truncate-max-event-size=102400 Maximum size of the au‐
165 dit event sent to the underlying backend. If the size of an event is
166 greater than this number, first request and response are removed, and
167 if this doesn't reduce the size enough, event is discarded.
168
169
170 --audit-log-version="audit.k8s.io/v1" API group and version used
171 for serializing audit events written to log.
172
173
174 --audit-policy-file="" Path to the file that defines the audit
175 policy configuration.
176
177
178 --audit-webhook-batch-buffer-size=10000 The size of the buffer to
179 store events before batching and writing. Only used in batch mode.
180
181
182 --audit-webhook-batch-initial-backoff=10s The amount of time to
183 wait before retrying the first failed request.
184
185
186 --audit-webhook-batch-max-size=400 The maximum size of a batch.
187 Only used in batch mode.
188
189
190 --audit-webhook-batch-max-wait=30s The amount of time to wait be‐
191 fore force writing the batch that hadn't reached the max size. Only
192 used in batch mode.
193
194
195 --audit-webhook-batch-throttle-burst=15 Maximum number of requests
196 sent at the same moment if ThrottleQPS was not utilized before. Only
197 used in batch mode.
198
199
200 --audit-webhook-batch-throttle-enable=true Whether batching throt‐
201 tling is enabled. Only used in batch mode.
202
203
204 --audit-webhook-batch-throttle-qps=10 Maximum average number of
205 batches per second. Only used in batch mode.
206
207
208 --audit-webhook-config-file="" Path to a kubeconfig formatted file
209 that defines the audit webhook configuration.
210
211
212 --audit-webhook-initial-backoff=10s The amount of time to wait be‐
213 fore retrying the first failed request.
214
215
216 --audit-webhook-mode="batch" Strategy for sending audit events.
217 Blocking indicates sending events should block server responses. Batch
218 causes the backend to buffer and write events asynchronously. Known
219 modes are batch,blocking,blocking-strict.
220
221
222 --audit-webhook-truncate-enabled=false Whether event and batch
223 truncating is enabled.
224
225
226 --audit-webhook-truncate-max-batch-size=10485760 Maximum size of
227 the batch sent to the underlying backend. Actual serialized size can be
228 several hundreds of bytes greater. If a batch exceeds this limit, it is
229 split into several batches of smaller size.
230
231
232 --audit-webhook-truncate-max-event-size=102400 Maximum size of the
233 audit event sent to the underlying backend. If the size of an event is
234 greater than this number, first request and response are removed, and
235 if this doesn't reduce the size enough, event is discarded.
236
237
238 --audit-webhook-version="audit.k8s.io/v1" API group and version
239 used for serializing audit events written to webhook.
240
241
242 --authentication-token-webhook-cache-ttl=2m0s The duration to
243 cache responses from the webhook token authenticator.
244
245
246 --authentication-token-webhook-config-file="" File with webhook
247 configuration for token authentication in kubeconfig format. The API
248 server will query the remote service to determine authentication for
249 bearer tokens.
250
251
252 --authentication-token-webhook-version="v1beta1" The API version
253 of the authentication.k8s.io TokenReview to send to and expect from the
254 webhook.
255
256
257 --authorization-mode=[AlwaysAllow] Ordered list of plug-ins to do
258 authorization on secure port. Comma-delimited list of: AlwaysAllow,Al‐
259 waysDeny,ABAC,Webhook,RBAC,Node.
260
261
262 --authorization-policy-file="" File with authorization policy in
263 json line by line format, used with --authorization-mode=ABAC, on the
264 secure port.
265
266
267 --authorization-webhook-cache-authorized-ttl=5m0s The duration to
268 cache 'authorized' responses from the webhook authorizer.
269
270
271 --authorization-webhook-cache-unauthorized-ttl=30s The duration to
272 cache 'unauthorized' responses from the webhook authorizer.
273
274
275 --authorization-webhook-config-file="" File with webhook configu‐
276 ration in kubeconfig format, used with --authorization-mode=Webhook.
277 The API server will query the remote service to determine access on the
278 API server's secure port.
279
280
281 --authorization-webhook-version="v1beta1" The API version of the
282 authorization.k8s.io SubjectAccessReview to send to and expect from the
283 webhook.
284
285
286 --azure-container-registry-config="" Path to the file containing
287 Azure container registry configuration information.
288
289
290 --bind-address=0.0.0.0 The IP address on which to listen for the
291 --secure-port port. The associated interface(s) must be reachable by
292 the rest of the cluster, and by CLI/web clients. If blank or an unspec‐
293 ified address (0.0.0.0 or ::), all interfaces will be used.
294
295
296 --cert-dir="/var/run/kubernetes" The directory where the TLS certs
297 are located. If --tls-cert-file and --tls-private-key-file are pro‐
298 vided, this flag will be ignored.
299
300
301 --client-ca-file="" If set, any request presenting a client cer‐
302 tificate signed by one of the authorities in the client-ca-file is au‐
303 thenticated with an identity corresponding to the CommonName of the
304 client certificate.
305
306
307 --cloud-config="" The path to the cloud provider configuration
308 file. Empty string for no configuration file.
309
310
311 --cloud-provider="" The provider for cloud services. Empty string
312 for no provider.
313
314
315 --cloud-provider-gce-l7lb-src-cidrs=130.211.0.0/22,35.191.0.0/16
316 CIDRs opened in GCE firewall for L7 LB traffic proxy health
317 checks
318
319
320 --cloud-provider-gce-lb-src-cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
321 CIDRs opened in GCE firewall for L4 LB traffic proxy health
322 checks
323
324
325 --contention-profiling=false Enable lock contention profiling, if
326 profiling is enabled
327
328
329 --cors-allowed-origins=[] List of allowed origins for CORS, comma
330 separated. An allowed origin can be a regular expression to support
331 subdomain matching. If this list is empty CORS will not be enabled.
332
333
334 --default-not-ready-toleration-seconds=300 Indicates the tolera‐
335 tionSeconds of the toleration for notReady:NoExecute that is added by
336 default to every pod that does not already have such a toleration.
337
338
339 --default-unreachable-toleration-seconds=300 Indicates the tolera‐
340 tionSeconds of the toleration for unreachable:NoExecute that is added
341 by default to every pod that does not already have such a toleration.
342
343
344 --default-watch-cache-size=100 Default watch cache size. If zero,
345 watch cache will be disabled for resources that do not have a default
346 watch size set.
347
348
349 --delete-collection-workers=1 Number of workers spawned for
350 DeleteCollection call. These are used to speed up namespace cleanup.
351
352
353 --deserialization-cache-size=0 Number of deserialized json objects
354 to cache in memory.
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, Pri‐
360 ority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectI‐
361 nUseProtection, PersistentVolumeClaimResize, RuntimeClass, Certifi‐
362 cateApproval, CertificateSigning, CertificateSubjectRestriction, De‐
363 faultIngressClass, MutatingAdmissionWebhook, ValidatingAdmissionWeb‐
364 hook, ResourceQuota). Comma-delimited list of admission plugins: Al‐
365 waysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, Certifi‐
366 cateSigning, CertificateSubjectRestriction, DefaultIngressClass, De‐
367 faultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs,
368 EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, Limit‐
369 PodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook,
370 NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRe‐
371 striction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaim‐
372 Resize, PersistentVolumeLabel, PodNodeSelector, PodSecurityPolicy, Pod‐
373 TolerationRestriction, Priority, ResourceQuota, RuntimeClass, Security‐
374 ContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodes‐
375 ByCondition, ValidatingAdmissionWebhook. The order of plugins in this
376 flag does not matter.
377
378
379 --disabled-metrics=[] This flag provides an escape hatch for mis‐
380 behaving metrics. You must provide the fully qualified metric name in
381 order to disable it. Disclaimer: disabling metrics is higher in prece‐
382 dence than showing hidden metrics.
383
384
385 --egress-selector-config-file="" File with apiserver egress selec‐
386 tor configuration.
387
388
389 --enable-admission-plugins=[] admission plugins that should be en‐
390 abled in addition to default enabled ones (NamespaceLifecycle, Limi‐
391 tRanger, ServiceAccount, TaintNodesByCondition, Priority, DefaultToler‐
392 ationSeconds, DefaultStorageClass, StorageObjectInUseProtection, Per‐
393 sistentVolumeClaimResize, RuntimeClass, CertificateApproval, Certifi‐
394 cateSigning, CertificateSubjectRestriction, DefaultIngressClass, Mu‐
395 tatingAdmissionWebhook, ValidatingAdmissionWebhook, ResourceQuota).
396 Comma-delimited list of admission plugins: AlwaysAdmit, AlwaysDeny, Al‐
397 waysPullImages, CertificateApproval, CertificateSigning, Certificate‐
398 SubjectRestriction, DefaultIngressClass, DefaultStorageClass, Default‐
399 TolerationSeconds, DenyServiceExternalIPs, EventRateLimit, Extende‐
400 dResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopol‐
401 ogy, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision,
402 NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferences‐
403 PermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLa‐
404 bel, PodNodeSelector, PodSecurityPolicy, PodTolerationRestriction, Pri‐
405 ority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAc‐
406 count, StorageObjectInUseProtection, TaintNodesByCondition, Validatin‐
407 gAdmissionWebhook. The order of plugins in this flag does not matter.
408
409
410 --enable-aggregator-routing=false Turns on aggregator routing re‐
411 quests to endpoints IP rather than cluster IP.
412
413
414 --enable-bootstrap-token-auth=false Enable to allow secrets of
415 type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to
416 be used for TLS bootstrapping authentication.
417
418
419 --enable-garbage-collector=true Enables the generic garbage col‐
420 lector. MUST be synced with the corresponding flag of the kube-con‐
421 troller-manager.
422
423
424 --enable-logs-handler=true If true, install a /logs handler for
425 the apiserver logs.
426
427
428 --enable-priority-and-fairness=true If true and the APIPrior‐
429 ityAndFairness feature gate is enabled, replace the max-in-flight han‐
430 dler with an enhanced one that queues and dispatches with priority and
431 fairness
432
433
434 --enable-swagger-ui=false Enables swagger ui on the apiserver at
435 /swagger-ui
436
437
438 --encryption-provider-config="" The file containing configuration
439 for encryption providers to be used for storing secrets in etcd
440
441
442 --endpoint-reconciler-type="lease" Use an endpoint reconciler
443 (master-count, lease, none)
444
445
446 --etcd-cafile="" SSL Certificate Authority file used to secure
447 etcd communication.
448
449
450 --etcd-certfile="" SSL certification file used to secure etcd com‐
451 munication.
452
453
454 --etcd-compaction-interval=5m0s The interval of compaction re‐
455 quests. If 0, the compaction request from apiserver is disabled.
456
457
458 --etcd-count-metric-poll-period=1m0s Frequency of polling etcd for
459 number of resources per type. 0 disables the metric collection.
460
461
462 --etcd-db-metric-poll-interval=30s The interval of requests to
463 poll etcd and update metric. 0 disables the metric collection
464
465
466 --etcd-healthcheck-timeout=2s The timeout to use when checking
467 etcd health.
468
469
470 --etcd-keyfile="" SSL key file used to secure etcd communication.
471
472
473 --etcd-prefix="/registry" The prefix to prepend to all resource
474 paths in etcd.
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 --experimental-encryption-provider-config="" The file containing
491 configuration for encryption providers to be used for storing secrets
492 in etcd
493
494
495 --experimental-logging-sanitization=false [Experimental] When en‐
496 abled prevents logging of fields tagged as sensitive (passwords, keys,
497 tokens). Runtime log sanitization may introduce significant computa‐
498 tion overhead and therefore should not be enabled in production.
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) APIServerIdentity=true|false (ALPHA - default=false) AllAl‐
511 pha=true|false (ALPHA - default=false) AllBeta=true|false (BETA - de‐
512 fault=false) AnyVolumeDataSource=true|false (ALPHA - default=false) Ap‐
513 pArmor=true|false (BETA - default=true) BalanceAttachedNodeVol‐
514 umes=true|false (ALPHA - default=false) BoundServiceAccountTokenVol‐
515 ume=true|false (BETA - default=true) CPUManager=true|false (BETA - de‐
516 fault=true) CSIInlineVolume=true|false (BETA - default=true) CSIMigra‐
517 tion=true|false (BETA - default=true) CSIMigrationAWS=true|false (BETA
518 - default=false) CSIMigrationAzureDisk=true|false (BETA - de‐
519 fault=false) CSIMigrationAzureFile=true|false (BETA - default=false)
520 CSIMigrationGCE=true|false (BETA - default=false) CSIMigrationOpen‐
521 Stack=true|false (BETA - default=true) CSIMigrationvSphere=true|false
522 (BETA - default=false) CSIMigrationvSphereComplete=true|false (BETA -
523 default=false) CSIServiceAccountToken=true|false (BETA - default=true)
524 CSIStorageCapacity=true|false (BETA - default=true) CSIVolumeFSGroup‐
525 Policy=true|false (BETA - default=true) CSIVolumeHealth=true|false (AL‐
526 PHA - default=false) ConfigurableFSGroupPolicy=true|false (BETA - de‐
527 fault=true) ControllerManagerLeaderMigration=true|false (ALPHA - de‐
528 fault=false) CronJobControllerV2=true|false (BETA - default=true) Cus‐
529 tomCPUCFSQuotaPeriod=true|false (ALPHA - default=false) DaemonSetUp‐
530 dateSurge=true|false (ALPHA - default=false) DefaultPodTopolo‐
531 gySpread=true|false (BETA - default=true) DevicePlugins=true|false
532 (BETA - default=true) DisableAcceleratorUsageMetrics=true|false (BETA -
533 default=true) DownwardAPIHugePages=true|false (BETA - default=false)
534 DynamicKubeletConfig=true|false (BETA - default=true) EfficientWatchRe‐
535 sumption=true|false (BETA - default=true) EndpointSliceProxy‐
536 ing=true|false (BETA - default=true) EndpointSliceTerminatingCondi‐
537 tion=true|false (ALPHA - default=false) EphemeralContainers=true|false
538 (ALPHA - default=false) ExpandCSIVolumes=true|false (BETA - de‐
539 fault=true) ExpandInUsePersistentVolumes=true|false (BETA - de‐
540 fault=true) ExpandPersistentVolumes=true|false (BETA - default=true)
541 ExperimentalHostUserNamespaceDefaulting=true|false (BETA - de‐
542 fault=false) GenericEphemeralVolume=true|false (BETA - default=true)
543 GracefulNodeShutdown=true|false (BETA - default=true) HPAContainerMet‐
544 rics=true|false (ALPHA - default=false) HPAScaleToZero=true|false (AL‐
545 PHA - default=false) HugePageStorageMediumSize=true|false (BETA - de‐
546 fault=true) IPv6DualStack=true|false (BETA - default=true) InTreePlugi‐
547 nAWSUnregister=true|false (ALPHA - default=false) InTreePluginAzure‐
548 DiskUnregister=true|false (ALPHA - default=false) InTreePluginAzure‐
549 FileUnregister=true|false (ALPHA - default=false) InTreePluginGCEUnreg‐
550 ister=true|false (ALPHA - default=false) InTreePluginOpenStackUnregis‐
551 ter=true|false (ALPHA - default=false) InTreePluginvSphereUnregis‐
552 ter=true|false (ALPHA - default=false) IndexedJob=true|false (ALPHA -
553 default=false) IngressClassNamespacedParams=true|false (ALPHA - de‐
554 fault=false) KubeletCredentialProviders=true|false (ALPHA - de‐
555 fault=false) KubeletPodResources=true|false (BETA - default=true)
556 KubeletPodResourcesGetAllocatable=true|false (ALPHA - default=false)
557 LocalStorageCapacityIsolation=true|false (BETA - default=true) Local‐
558 StorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - de‐
559 fault=false) LogarithmicScaleDown=true|false (ALPHA - default=false)
560 MemoryManager=true|false (ALPHA - default=false) MixedProtocolLBSer‐
561 vice=true|false (ALPHA - default=false) NamespaceDefaultLabel‐
562 Name=true|false (BETA - default=true) NetworkPolicyEndPort=true|false
563 (ALPHA - default=false) NonPreemptingPriority=true|false (BETA - de‐
564 fault=true) PodAffinityNamespaceSelector=true|false (ALPHA - de‐
565 fault=false) PodDeletionCost=true|false (ALPHA - default=false)
566 PodOverhead=true|false (BETA - default=true) PreferNominat‐
567 edNode=true|false (ALPHA - default=false) ProbeTerminationGracePe‐
568 riod=true|false (ALPHA - default=false) ProcMountType=true|false (ALPHA
569 - default=false) QOSReserved=true|false (ALPHA - default=false) Remain‐
570 ingItemCount=true|false (BETA - default=true) RemoveSelfLink=true|false
571 (BETA - default=true) RotateKubeletServerCertificate=true|false (BETA -
572 default=true) ServerSideApply=true|false (BETA - default=true) Servi‐
573 ceInternalTrafficPolicy=true|false (ALPHA - default=false) ServiceLBN‐
574 odePortControl=true|false (ALPHA - default=false) ServiceLoadBalancer‐
575 Class=true|false (ALPHA - default=false) ServiceTopology=true|false
576 (ALPHA - default=false) SetHostnameAsFQDN=true|false (BETA - de‐
577 fault=true) SizeMemoryBackedVolumes=true|false (ALPHA - default=false)
578 StorageVersionAPI=true|false (ALPHA - default=false) StorageVersion‐
579 Hash=true|false (BETA - default=true) SuspendJob=true|false (ALPHA -
580 default=false) TTLAfterFinished=true|false (BETA - default=true) Topol‐
581 ogyAwareHints=true|false (ALPHA - default=false) TopologyMan‐
582 ager=true|false (BETA - default=true) ValidateProxyRedirects=true|false
583 (BETA - default=true) VolumeCapacityPriority=true|false (ALPHA - de‐
584 fault=false) WarningHeaders=true|false (BETA - default=true)
585 WinDSR=true|false (ALPHA - default=false) WinOverlay=true|false (BETA -
586 default=true) WindowsEndpointSliceProxying=true|false (BETA - de‐
587 fault=true)
588
589
590 --goaway-chance=0 To prevent HTTP/2 clients from getting stuck on
591 a single apiserver, randomly close a connection (GOAWAY). The client's
592 other in-flight requests won't be affected, and the client will recon‐
593 nect, likely landing on a different apiserver after going through the
594 load balancer again. This argument sets the fraction of requests that
595 will be sent a GOAWAY. Clusters with single apiservers, or which don't
596 use a load balancer, should NOT enable this. Min is 0 (off), Max is .02
597 (1/50 requests); .001 (1/1000) is a recommended starting point.
598
599
600 -h, --help=false help for kube-apiserver
601
602
603 --http2-max-streams-per-connection=0 The limit that the server
604 gives to clients for the maximum number of streams in an HTTP/2 connec‐
605 tion. Zero means to use golang's default.
606
607
608 --identity-lease-duration-seconds=3600 The duration of kube-apis‐
609 erver lease in seconds, must be a positive number. (In use when the
610 APIServerIdentity feature gate is enabled.)
611
612
613 --identity-lease-renew-interval-seconds=10 The interval of
614 kube-apiserver renewing its lease in seconds, must be a positive num‐
615 ber. (In use when the APIServerIdentity feature gate is enabled.)
616
617
618 --insecure-bind-address=127.0.0.1 The IP address on which to serve
619 the insecure port (set to 0.0.0.0 or :: for listening in all interfaces
620 and IP families).
621
622
623 --insecure-port=0 The port on which to serve unsecured, unauthen‐
624 ticated access.
625
626
627 --kubelet-certificate-authority="" Path to a cert file for the
628 certificate authority.
629
630
631 --kubelet-client-certificate="" Path to a client cert file for
632 TLS.
633
634
635 --kubelet-client-key="" Path to a client key file for TLS.
636
637
638 --kubelet-https=true Use https for kubelet connections.
639
640
641 --kubelet-port=10250 DEPRECATED: kubelet port.
642
643
644 --kubelet-preferred-address-types=[Hostname,InternalDNS,InternalIP,Ex‐
645 ternalDNS,ExternalIP] List of the preferred NodeAddressTypes to
646 use for kubelet connections.
647
648
649 --kubelet-read-only-port=10255 DEPRECATED: kubelet read only port.
650
651
652 --kubelet-timeout=5s Timeout for kubelet operations.
653
654
655 --kubernetes-service-node-port=0 If non-zero, the Kubernetes mas‐
656 ter service (which apiserver creates/maintains) will be of type Node‐
657 Port, using this as the value of the port. If zero, the Kubernetes mas‐
658 ter service will be of type ClusterIP.
659
660
661 --lease-reuse-duration-seconds=60 The time in seconds that each
662 lease is reused. A lower value could avoid large number of objects
663 reusing the same lease. Notice that a too small value may cause perfor‐
664 mance problems at storage layer.
665
666
667 --livez-grace-period=0s This option represents the maximum amount
668 of time it should take for apiserver to complete its startup sequence
669 and become live. From apiserver's start time to when this amount of
670 time has elapsed, /livez will assume that unfinished post-start hooks
671 will complete successfully and therefore return true.
672
673
674 --log-flush-frequency=5s Maximum number of seconds between log
675 flushes
676
677
678 --log_backtrace_at=:0 when logging hits line file:N, emit a stack
679 trace
680
681
682 --log_dir="" If non-empty, write log files in this directory
683
684
685 --log_file="" If non-empty, use this log file
686
687
688 --log_file_max_size=1800 Defines the maximum size a log file can
689 grow to. Unit is megabytes. If the value is 0, the maximum file size is
690 unlimited.
691
692
693 --logging-format="text" Sets the log format. Permitted formats:
694 "json", "text". Non-default formats don't honor these flags:
695 --add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir,
696 --log_file, --log_file_max_size, --logtostderr, --one_output,
697 --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule,
698 --log-flush-frequency. Non-default choices are currently alpha and
699 subject to change without warning.
700
701
702 --logtostderr=true log to standard error instead of files
703
704
705 --master-service-namespace="default" DEPRECATED: the namespace
706 from which the Kubernetes master services should be injected into pods.
707
708
709 --max-connection-bytes-per-sec=0 If non-zero, throttle each user
710 connection to this number of bytes/sec. Currently only applies to
711 long-running requests.
712
713
714 --max-mutating-requests-inflight=200 The maximum number of mutat‐
715 ing requests in flight at a given time. When the server exceeds this,
716 it rejects requests. Zero for no limit.
717
718
719 --max-requests-inflight=400 The maximum number of non-mutating re‐
720 quests in flight at a given time. When the server exceeds this, it re‐
721 jects requests. Zero for no limit.
722
723
724 --min-request-timeout=1800 An optional field indicating the mini‐
725 mum number of seconds a handler must keep a request open before timing
726 it out. Currently only honored by the watch request handler, which
727 picks a randomized value above this number as the connection timeout,
728 to spread out load.
729
730
731 --oidc-ca-file="" If set, the OpenID server's certificate will be
732 verified by one of the authorities in the oidc-ca-file, otherwise the
733 host's root CA set will be used.
734
735
736 --oidc-client-id="" The client ID for the OpenID Connect client,
737 must be set if oidc-issuer-url is set.
738
739
740 --oidc-groups-claim="" If provided, the name of a custom OpenID
741 Connect claim for specifying user groups. The claim value is expected
742 to be a string or array of strings. This flag is experimental, please
743 see the authentication documentation for further details.
744
745
746 --oidc-groups-prefix="" If provided, all groups will be prefixed
747 with this value to prevent conflicts with other authentication strate‐
748 gies.
749
750
751 --oidc-issuer-url="" The URL of the OpenID issuer, only HTTPS
752 scheme will be accepted. If set, it will be used to verify the OIDC
753 JSON Web Token (JWT).
754
755
756 --oidc-required-claim= A key=value pair that describes a required
757 claim in the ID Token. If set, the claim is verified to be present in
758 the ID Token with a matching value. Repeat this flag to specify multi‐
759 ple claims.
760
761
762 --oidc-signing-algs=[RS256] Comma-separated list of allowed JOSE
763 asymmetric signing algorithms. JWTs with a 'alg' header value not in
764 this list will be rejected. Values are defined by RFC 7518
765 https://tools.ietf.org/html/rfc7518#section-3.1.
766
767
768 --oidc-username-claim="sub" The OpenID claim to use as the user
769 name. Note that claims other than the default ('sub') is not guaranteed
770 to be unique and immutable. This flag is experimental, please see the
771 authentication documentation for further details.
772
773
774 --oidc-username-prefix="" If provided, all usernames will be pre‐
775 fixed with this value. If not provided, username claims other than
776 'email' are prefixed by the issuer URL to avoid clashes. To skip any
777 prefixing, provide the value '-'.
778
779
780 --one_output=false If true, only write logs to their native sever‐
781 ity level (vs also writing to each lower severity level)
782
783
784 --permit-address-sharing=false If true, SO_REUSEADDR will be used
785 when binding the port. This allows binding to wildcard IPs like 0.0.0.0
786 and specific IPs in parallel, and it avoids waiting for the kernel to
787 release sockets in TIME_WAIT state. [default=false]
788
789
790 --permit-port-sharing=false If true, SO_REUSEPORT will be used
791 when binding the port, which allows more than one instance to bind on
792 the same address and port. [default=false]
793
794
795 --port=0 The port on which to serve unsecured, unauthenticated ac‐
796 cess.
797
798
799 --profiling=true Enable profiling via web interface host:port/de‐
800 bug/pprof/
801
802
803 --proxy-client-cert-file="" Client certificate used to prove the
804 identity of the aggregator or kube-apiserver when it must call out dur‐
805 ing a request. This includes proxying requests to a user api-server and
806 calling out to webhook admission plugins. It is expected that this cert
807 includes a signature from the CA in the --requestheader-client-ca-file
808 flag. That CA is published in the 'extension-apiserver-authentication'
809 configmap in the kube-system namespace. Components receiving calls from
810 kube-aggregator should use that CA to perform their half of the mutual
811 TLS verification.
812
813
814 --proxy-client-key-file="" Private key for the client certificate
815 used to prove the identity of the aggregator or kube-apiserver when it
816 must call out during a request. This includes proxying requests to a
817 user api-server and calling out to webhook admission plugins.
818
819
820 --request-timeout=1m0s An optional field indicating the duration a
821 handler must keep a request open before timing it out. This is the de‐
822 fault request timeout for requests but may be overridden by flags such
823 as --min-request-timeout for specific types of requests.
824
825
826 --requestheader-allowed-names=[] List of client certificate common
827 names to allow to provide usernames in headers specified by --request‐
828 header-username-headers. If empty, any client certificate validated by
829 the authorities in --requestheader-client-ca-file is allowed.
830
831
832 --requestheader-client-ca-file="" Root certificate bundle to use
833 to verify client certificates on incoming requests before trusting
834 usernames in headers specified by --requestheader-username-headers.
835 WARNING: generally do not depend on authorization being already done
836 for incoming requests.
837
838
839 --requestheader-extra-headers-prefix=[] List of request header
840 prefixes to inspect. X-Remote-Extra- is suggested.
841
842
843 --requestheader-group-headers=[] List of request headers to in‐
844 spect for groups. X-Remote-Group is suggested.
845
846
847 --requestheader-username-headers=[] List of request headers to in‐
848 spect for usernames. X-Remote-User is common.
849
850
851 --runtime-config= A set of key=value pairs that enable or disable
852 built-in APIs. Supported options are: v1=true|false for the core API
853 group /=true|false for a specific API group and version (e.g.
854 apps/v1=true) api/all=true|false controls all API versions
855 api/ga=true|false controls all API versions of the form v[0-9]+
856 api/beta=true|false controls all API versions of the form
857 v[0-9]+beta[0-9]+ api/alpha=true|false controls all API versions of the
858 form v[0-9]+alpha[0-9]+ api/legacy is deprecated, and will be removed
859 in a future version
860
861
862 --secure-port=6443 The port on which to serve HTTPS with authenti‐
863 cation and authorization. It cannot be switched off with 0.
864
865
866 --service-account-api-audiences=[] Identifiers of the API. The
867 service account token authenticator will validate that tokens used
868 against the API are bound to at least one of these audiences.
869
870
871 --service-account-extend-token-expiration=true Turns on projected
872 service account expiration extension during token generation, which
873 helps safe transition from legacy token to bound service account token
874 feature. If this flag is enabled, admission injected tokens would be
875 extended up to 1 year to prevent unexpected failure during transition,
876 ignoring value of service-account-max-token-expiration.
877
878
879 --service-account-issuer="" Identifier of the service account to‐
880 ken issuer. The issuer will assert this identifier in "iss" claim of
881 issued tokens. This value is a string or URI. If this option is not a
882 valid URI per the OpenID Discovery 1.0 spec, the ServiceAccountIs‐
883 suerDiscovery feature will remain disabled, even if the feature gate is
884 set to true. It is highly recommended that this value comply with the
885 OpenID spec: https://openid.net/specs/openid-connect-discov‐
886 ery-1_0.html. In practice, this means that service-account-issuer must
887 be an https URL. It is also highly recommended that this URL be capable
888 of serving OpenID discovery documents at {service-account-is‐
889 suer}/.well-known/openid-configuration.
890
891
892 --service-account-jwks-uri="" Overrides the URI for the JSON Web
893 Key Set in the discovery doc served at /.well-known/openid-configura‐
894 tion. This flag is useful if the discovery docand key set are served to
895 relying parties from a URL other than the API server's external (as
896 auto-detected or overridden with external-hostname). Only valid if the
897 ServiceAccountIssuerDiscovery feature gate is enabled.
898
899
900 --service-account-key-file=[] File containing PEM-encoded x509 RSA
901 or ECDSA private or public keys, used to verify ServiceAccount tokens.
902 The specified file can contain multiple keys, and the flag can be spec‐
903 ified multiple times with different files. If unspecified, --tls-pri‐
904 vate-key-file is used. Must be specified when --service-account-sign‐
905 ing-key is provided
906
907
908 --service-account-lookup=true If true, validate ServiceAccount to‐
909 kens exist in etcd as part of authentication.
910
911
912 --service-account-max-token-expiration=0s The maximum validity du‐
913 ration of a token created by the service account token issuer. If an
914 otherwise valid TokenRequest with a validity duration larger than this
915 value is requested, a token will be issued with a validity duration of
916 this value.
917
918
919 --service-account-signing-key-file="" Path to the file that con‐
920 tains the current private key of the service account token issuer. The
921 issuer will sign issued ID tokens with this private key.
922
923
924 --service-cluster-ip-range="" A CIDR notation IP range from which
925 to assign service cluster IPs. This must not overlap with any IP ranges
926 assigned to nodes or pods. Max of two dual-stack CIDRs is allowed.
927
928
929 --service-node-port-range=30000-32767 A port range to reserve for
930 services with NodePort visibility. Example: '30000-32767'. Inclusive at
931 both ends of the range.
932
933
934 --show-hidden-metrics-for-version="" The previous version for
935 which you want to show hidden metrics. Only the previous minor version
936 is meaningful, other values will not be allowed. The format is ., e.g.:
937 '1.16'. The purpose of this format is make sure you have the opportu‐
938 nity to notice if the next release hides additional metrics, rather
939 than being surprised when they are permanently removed in the release
940 after that.
941
942
943 --shutdown-delay-duration=0s Time to delay the termination. During
944 that time the server keeps serving requests normally. The endpoints
945 /healthz and /livez will return success, but /readyz immediately re‐
946 turns failure. Graceful termination starts after this delay has
947 elapsed. This can be used to allow load balancer to stop sending traf‐
948 fic to this server.
949
950
951 --skip_headers=false If true, avoid header prefixes in the log
952 messages
953
954
955 --skip_log_headers=false If true, avoid headers when opening log
956 files
957
958
959 --ssh-keyfile="" If non-empty, use secure SSH proxy to the nodes,
960 using this user keyfile
961
962
963 --ssh-user="" If non-empty, use secure SSH proxy to the nodes, us‐
964 ing this user name
965
966
967 --stderrthreshold=2 logs at or above this threshold go to stderr
968
969
970 --storage-backend="" The storage backend for persistence. Options:
971 'etcd3' (default).
972
973
974 --storage-media-type="application/vnd.kubernetes.protobuf" The me‐
975 dia type to use to store objects in storage. Some resources or storage
976 backends may only support a specific media type and will ignore this
977 setting.
978
979
980 --strict-transport-security-directives=[] List of directives for
981 HSTS, comma separated. If this list is empty, then HSTS directives will
982 not be added. Example: 'max-age=31536000,includeSubDomains,preload'
983
984
985 --target-ram-mb=0 DEPRECATED: Memory limit for apiserver in MB
986 (used to configure sizes of caches, etc.)
987
988
989 --tls-cert-file="" File containing the default x509 Certificate
990 for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS
991 serving is enabled, and --tls-cert-file and --tls-private-key-file are
992 not provided, a self-signed certificate and key are generated for the
993 public address and saved to the directory specified by --cert-dir.
994
995
996 --tls-cipher-suites=[] Comma-separated list of cipher suites for
997 the server. If omitted, the default Go cipher suites will be used.
998 Preferred values: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384,
999 TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
1000 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
1001 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
1002 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
1003 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
1004 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
1005 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
1006 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
1007 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
1008 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
1009 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
1010 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
1011 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
1012 TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA,
1013 TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA,
1014 TLS_RSA_WITH_AES_256_GCM_SHA384. Insecure values:
1015 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
1016 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
1017 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA,
1018 TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA.
1019
1020
1021 --tls-min-version="" Minimum TLS version supported. Possible val‐
1022 ues: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
1023
1024
1025 --tls-private-key-file="" File containing the default x509 private
1026 key matching --tls-cert-file.
1027
1028
1029 --tls-sni-cert-key=[] A pair of x509 certificate and private key
1030 file paths, optionally suffixed with a list of domain patterns which
1031 are fully qualified domain names, possibly with prefixed wildcard seg‐
1032 ments. The domain patterns also allow IP addresses, but IPs should only
1033 be used if the apiserver has visibility to the IP address requested by
1034 a client. If no domain patterns are provided, the names of the certifi‐
1035 cate are extracted. Non-wildcard matches trump over wildcard matches,
1036 explicit domain patterns trump over extracted names. For multiple
1037 key/certificate pairs, use the --tls-sni-cert-key multiple times. Exam‐
1038 ples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com".
1039
1040
1041 --token-auth-file="" If set, the file that will be used to secure
1042 the secure port of the API server via token authentication.
1043
1044
1045 -v, --v=0 number for the log level verbosity
1046
1047
1048 --version=false Print version information and quit
1049
1050
1051 --vmodule= comma-separated list of pattern=N settings for
1052 file-filtered logging
1053
1054
1055 --watch-cache=true Enable watch caching in the apiserver
1056
1057
1058 --watch-cache-sizes=[] Watch cache size settings for some re‐
1059 sources (pods, nodes, etc.), comma separated. The individual setting
1060 format: resource[.group]#size, where resource is lowercase plural (no
1061 version), group is omitted for resources of apiVersion v1 (the legacy
1062 core API) and included for others, and size is a number. It takes ef‐
1063 fect when watch-cache is enabled. Some resources (replicationcon‐
1064 trollers, endpoints, nodes, pods, services, apiservices.apiregistra‐
1065 tion.k8s.io) have system defaults set by heuristics, others default to
1066 default-watch-cache-size
1067
1068
1069
1071 January 2015, Originally compiled by Eric Paris (eparis at redhat dot
1072 com) based on the kubernetes source material, but hopefully they have
1073 been automatically generated since!
1074
1075
1076
1077Manuals User KUBERNETES(1)(kubernetes)