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