kube-apiserver

简介

Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。 API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。

  1. kube-apiserver [flags]

选项

—admission-control-config-file string

包含准入控制配置的文件。

—advertise-address string

向集群成员通知 apiserver 消息的 IP 地址。 这个地址必须能够被集群中其他成员访问。 如果 IP 地址为空,将会使用 —bind-address, 如果未指定 —bind-address,将会使用主机的默认接口地址。

—aggregator-reject-forwarding-redirect     默认值:true

聚合器拒绝将重定向响应转发回客户端。

—allow-metric-labels stringToString     默认值:[]

允许使用的指标标签到指标值的映射列表。键的格式为 <MetricName>,<LabelName>. 值的格式为 <allowed_value>,<allowed_value>…。 例如:metric1,label1=’v1,v2,v3’, metric1,label2=’v1,v2,v3’ metric2,label1=’v1,v2,v3’

—allow-metric-labels-manifest string

包含允许列表映射的清单文件的路径。此文件的格式与 —allow-metric-labels 相同。 请注意,—allow-metric-labels 标志将覆盖清单文件。

—allow-privileged
如果为 true,将允许特权容器。[默认值=false]
—anonymous-auth     默认值:true
启用针对 API 服务器的安全端口的匿名请求。 未被其他身份认证方法拒绝的请求被当做匿名请求。 匿名请求的用户名为 system:anonymous, 用户组名为 system:unauthenticated。
—api-audiences strings
API 的标识符。 服务帐户令牌验证者将验证针对 API 使用的令牌是否已绑定到这些受众中的至少一个。 如果配置了 —service-account-issuer 标志,但未配置此标志, 则此字段默认为包含发布者 URL 的单个元素列表。
—audit-log-batch-buffer-size int     默认值:10000
批处理和写入事件之前用于缓存事件的缓冲区大小。 仅在批处理模式下使用。
—audit-log-batch-max-size int     默认值:1
每个批次的最大大小。仅在批处理模式下使用。
—audit-log-batch-max-wait duration
强制写入尚未达到最大大小的批次之前要等待的时间。 仅在批处理模式下使用。
—audit-log-batch-throttle-burst int
如果之前未使用 ThrottleQPS,则为同时发送的最大请求数。 仅在批处理模式下使用。
—audit-log-batch-throttle-enable
是否启用了批量限制。仅在批处理模式下使用。
—audit-log-batch-throttle-qps float
每秒的最大平均批次数。仅在批处理模式下使用。
—audit-log-compress
若设置了此标志,则被轮换的日志文件会使用 gzip 压缩。
—audit-log-format string     默认值:”json”
所保存的审计格式。 “legacy” 表示每行一个事件的文本格式。”json” 表示结构化的 JSON 格式。 已知格式为 legacy,json。
—audit-log-maxage int
根据文件名中编码的时间戳保留旧审计日志文件的最大天数。
—audit-log-maxbackup int
要保留的旧的审计日志文件个数上限。 将值设置为 0 表示对文件个数没有限制。
—audit-log-maxsize int
轮换之前,审计日志文件的最大大小(以兆字节为单位)。
—audit-log-mode string     默认值:”blocking”
用来发送审计事件的策略。 阻塞(blocking)表示发送事件应阻止服务器响应。 批处理(batch)会导致后端异步缓冲和写入事件。 已知的模式是批处理(batch),阻塞(blocking),严格阻塞(blocking-strict)。
—audit-log-path string
如果设置,则所有到达 API 服务器的请求都将记录到该文件中。 “-“ 表示标准输出。
—audit-log-truncate-enabled
是否启用事件和批次截断。
—audit-log-truncate-max-batch-size int     默认值:10485760
发送到下层后端的每批次的最大数据量。 实际的序列化大小可能会增加数百个字节。 如果一个批次超出此限制,则将其分成几个较小的批次。
—audit-log-truncate-max-event-size int     默认值:102400
发送到下层后端的每批次的最大数据量。 如果事件的大小大于此数字,则将删除第一个请求和响应; 如果这样做没有减小足够大的程度,则将丢弃事件。
—audit-log-version string     默认值:”audit.k8s.io/v1”
用于对写入日志的审计事件执行序列化的 API 组和版本。
—audit-policy-file string
定义审计策略配置的文件的路径。
—audit-webhook-batch-buffer-size int     默认值:10000
划分批次和写入之前用于存储事件的缓冲区大小。 仅在批处理模式下使用。
—audit-webhook-batch-max-size int     默认值:400
批次的最大大小。 仅在批处理模式下使用。
—audit-webhook-batch-max-wait duration     默认值:30s
强制写入尚未达到最大大小的批处理之前要等待的时间。 仅在批处理模式下使用。
—audit-webhook-batch-throttle-burst int     默认值:15
如果之前未使用 ThrottleQPS,同时发送的最大请求数。 仅在批处理模式下使用。
—audit-webhook-batch-throttle-enable     默认值:true
是否启用了批量限制。仅在批处理模式下使用。
—audit-webhook-batch-throttle-qps float32     默认值:10
每秒的最大平均批次数。仅在批处理模式下使用。
—audit-webhook-config-file string
定义审计 webhook 配置的 kubeconfig 格式文件的路径。
—audit-webhook-initial-backoff duration     默认值:10s
重试第一个失败的请求之前要等待的时间。
—audit-webhook-mode string     默认值:”batch”
发送审计事件的策略。 阻止(Blocking)表示发送事件应阻止服务器响应。 批处理(Batch)导致后端异步缓冲和写入事件。 已知的模式是批处理(batch),阻塞(blocking),严格阻塞(blocking-strict)。
—audit-webhook-truncate-enabled
是否启用事件和批处理截断。
—audit-webhook-truncate-max-batch-size int     默认值:10485760
发送到下层后端的批次的最大数据量。 实际的序列化大小可能会增加数百个字节。 如果一个批次超出此限制,则将其分成几个较小的批次。
—audit-webhook-truncate-max-event-size int     默认值:102400
发送到下层后端的批次的最大数据量。 如果事件的大小大于此数字,则将删除第一个请求和响应; 如果事件和事件的大小没有减小到一定幅度,则将丢弃事件。
—audit-webhook-version string     默认值:”audit.k8s.io/v1”
用于序列化写入 Webhook 的审计事件的 API 组和版本。
—authentication-config string

用于配置 JWT 令牌身份认证模块或匿名身份认证模块的身份认证配置文件。注意:此特性自 v1.29 起处于 Alpha 阶段。 需要设置 —feature-gate=StructuredAuthenticationConfiguration=true 才能启用此特性。 此特性与 oidc- 标志互斥。要配置匿名身份认证模块, 你需要启用 —feature-gate=AnonymousAuthConfigurableEndpoints。 如果在身份认证配置文件中配置了匿名身份认证模块,就不能使用 —anonymous-auth 标志。

—authentication-token-webhook-cache-ttl duration     2m0s
对来自 Webhook 令牌身份认证模块的响应的缓存时间。
—authentication-token-webhook-config-file string
包含 Webhook 配置的 kubeconfig 格式文件,用于进行令牌认证。 API 服务器将查询远程服务,以对持有者令牌进行身份认证。
—authentication-token-webhook-version string     默认值:”v1beta1”
与 Webhook 之间交换 authentication.k8s.io TokenReview 时使用的 API 版本。
—authorization-config string

用于配置鉴权链的鉴权配置文件。注意:此特性自 v1.29 起处于 Alpha 阶段。 需要将 —feature-gate=StructuredAuthorizationConfiguration=true 特性标志设置为 true 才能启用此特性。 此特性与其他 —authorization-mode和—authorization-webhook- 标志互斥。

—authorization-mode strings     默认值:”AlwaysAllow”
在安全端口上进行鉴权的插件的顺序列表。 逗号分隔的列表:AlwaysAllow、AlwaysDeny、ABAC、Webhook、RBAC、Node。
—authorization-policy-file string
包含鉴权策略的文件,其内容为分行 JSON 格式, 在安全端口上与 —authorization-mode=ABAC 一起使用。
—authorization-webhook-cache-authorized-ttl duration     默认值:5m0s
对来自 Webhook 鉴权组件的 “授权(authorized)” 响应的缓存时间。
—authorization-webhook-cache-unauthorized-ttl duration     默认值:30s
对来自 Webhook 鉴权模块的 “未授权(unauthorized)” 响应的缓存时间。
—authorization-webhook-config-file string
包含 Webhook 配置的文件,其格式为 kubeconfig, 与 —authorization-mode=Webhook 一起使用。 API 服务器将查询远程服务,以对 API 服务器的安全端口的访问执行鉴权。
—authorization-webhook-version string     默认值:”v1beta1”
与 Webhook 之间交换 authorization.k8s.io SubjectAccessReview 时使用的 API 版本。
—bind-address string     默认值:”0.0.0.0”
用来监听 —secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/web 客户端必须可以访问所关联的接口。 如果为空白或未指定地址(0.0.0.0::),则将使用所有接口和 IP 地址簇。
—cert-dir string     默认值:”/var/run/kubernetes”
TLS 证书所在的目录。 如果提供了 —tls-cert-file—tls-private-key-file 标志值,则将忽略此标志。
—client-ca-file string
如果已设置,则使用与客户端证书的 CommonName 对应的标识对任何出示由 client-ca 文件中的授权机构之一签名的客户端证书的请求进行身份认证。
—contention-profiling
如果启用了性能分析,则启用阻塞分析。
—cors-allowed-origins strings

CORS 允许的来源清单,以逗号分隔。 允许的来源可以是支持子域匹配的正则表达式。 如果此列表为空,则不会启用 CORS。 请确保每个表达式与整个主机名相匹配,方法是用’^’锚定开始或包括’//‘前缀,同时用’$’锚定结束或包括’:’端口分隔符后缀。 有效表达式的例子是’//example.com(:|$)’和’^https://example.com(:|$)'。

—debug-socket-path string

使用位于给定路径的、未受保护的(无身份认证或鉴权的)UNIX 域套接字执行性能分析。

—default-not-ready-toleration-seconds int     默认值:300
对污点 NotReady:NoExecute 的容忍时长(以秒计)。 默认情况下这一容忍度会被添加到尚未具有此容忍度的每个 pod 中。
—default-unreachable-toleration-seconds int     默认值:300
对污点 Unreachable:NoExecute 的容忍时长(以秒计) 默认情况下这一容忍度会被添加到尚未具有此容忍度的每个 pod 中。
—delete-collection-workers int     默认值:1
为 DeleteCollection 调用而产生的工作线程数。 这些用于加速名字空间清理。
—disable-admission-plugins strings

尽管位于默认启用的插件列表中,仍须被禁用的准入插件(NamespaceLifecycle、LimitRanger、 ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、 DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、 RuntimeClass、CertificateApproval、CertificateSigning、ClusterTrustBundleAttest、 CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、 ValidatingAdmissionPolicy、ValidatingAdmissionWebhook、ResourceQuota)。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、 CertificateSigning、CertificateSubjectRestriction、ClusterTrustBundleAttest、 DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、 EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、 LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、 NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、 PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、ServiceAccount、 StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。 该标志中插件的顺序无关紧要。

—disable-http2-serving

如果为 true,HTTP2 服务将被禁用 [默认值=false]

—disabled-metrics strings
此标志为行为不正确的度量指标提供一种处理方案。 你必须提供完全限定的指标名称才能将其禁止。 声明:禁用度量值的行为优先于显示已隐藏的度量值。
—egress-selector-config-file string
带有 API 服务器出站选择器配置的文件。
—emulated-version strings

不同组件所模拟的能力(API、特性等)的版本。
如果设置了该选项,组件将模拟此版本的行为,而不是下层可执行文件版本的行为。
版本格式只能是 major.minor,例如 “—emulated-version=wardle=1.2,kube=1.31”。 选项包括:
kube=1.31..1.31(默认值=1.31)。如果组件未被指定,默认为 “kube”。

—enable-admission-plugins strings

除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、 PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、 PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、ClusterTrustBundleAttest、 CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionPolicy、 ValidatingAdmissionWebhook、ResourceQuota)之外要启用的准入插件。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、 CertificateSigning、CertificateSubjectRestriction、ClusterTrustBundleAttest、DefaultIngressClass、 DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、 ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、 MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、 NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、 PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、 ResourceQuota、RuntimeClass、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、 ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。该标志中插件的顺序无关紧要。

—enable-aggregator-routing
允许聚合器将请求路由到端点 IP 而非集群 IP。
—enable-bootstrap-token-auth
启用以允许将 “kube-system” 名字空间中类型为 “bootstrap.kubernetes.io/token” 的 Secret 用于 TLS 引导身份认证。
—enable-garbage-collector     默认值:true
启用通用垃圾收集器。必须与 kube-controller-manager 的相应标志同步。
—enable-priority-and-fairness     默认值:true
如果为 true,则使用增强的处理程序替换 max-in-flight 处理程序, 以便根据优先级和公平性完成排队和调度。
—encryption-provider-config string
包含加密提供程序配置信息的文件,用在 etcd 中所存储的 Secret 上。
—encryption-provider-config-automatic-reload

确定由 —encryption-provider-config 设置的文件是否应在磁盘内容更改时自动重新加载。 将此标志设置为 true 将禁用通过 API 服务器 healthz 端点来唯一地标识不同 KMS 插件的能力。

—endpoint-reconciler-type string     默认值:”lease”
使用端点协调器(master-countleasenone)。 master-count 已弃用,并将在未来版本中删除。
—etcd-cafile string
用于保护 etcd 通信的 SSL 证书颁发机构文件。
—etcd-certfile string
用于保护 etcd 通信的 SSL 证书文件。
—etcd-compaction-interval duration     默认值:5m0s
压缩请求的间隔。 如果为0,则禁用来自 API 服务器的压缩请求。
—etcd-count-metric-poll-period duration     默认值:1m0s
针对每种类型的资源数量轮询 etcd 的频率。 0 值表示禁用度量值收集。
—etcd-db-metric-poll-interval duration     默认值:30s
轮询 etcd 和更新度量值的请求间隔。0 值表示禁用度量值收集。
—etcd-healthcheck-timeout duration      检查 etcd 健康状况时使用的超时时长。
—etcd-keyfile string
用于保护 etcd 通信的 SSL 密钥文件。
—etcd-prefix string     默认值:”/registry”
要在 etcd 中所有资源路径之前添加的前缀。
—etcd-readycheck-timeout 时长     默认值: 2s

检查 etcd 是否就绪时使用的超时

—etcd-servers strings
要连接的 etcd 服务器列表(scheme://ip:port),以逗号分隔。
—etcd-servers-overrides strings
etcd 服务器针对每个资源的重载设置,以逗号分隔。 单个替代格式:组/资源#服务器(group/resource#servers), 其中服务器是 URL,以分号分隔。 注意,此选项仅适用于编译进此服务器二进制文件的资源。
—event-ttl duration     默认值:1h0m0s
事件的保留时长。
—external-hostname string
为此主机生成外部化 UR L时要使用的主机名(例如 Swagger API 文档或 OpenID 发现)。
—feature-gates < 逗号分隔的 ‘key=True|False’ 键值对>
—feature-gates colonSeparatedMultimapStringString

逗号分隔的组件列表,这些 key=value 对用来描述不同组件测试性/试验性特性的特性门控。
如果组件未被指定,默认值为“kube”。此标志可以被重复调用。例如: —feature-gates ‘wardle:featureA=true,wardle:featureB=false’ —feature-gates ‘kube:featureC=true’ 可选项为:
kube:APIResponseCompression=true|false (BETA - 默认值=true)
kube:APIServerIdentity=true|false (BETA - 默认值=true)
kube:APIServerTracing=true|false (BETA - 默认值=true)
kube:APIServingWithRoutine=true|false (ALPHA - 默认值=false)
kube:AllAlpha=true|false (ALPHA - 默认值=false)
kube:AllBeta=true|false (BETA - 默认值=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (ALPHA - 默认值=false)
kube:AnyVolumeDataSource=true|false (BETA - 默认值=true)
kube:AuthorizeNodeWithSelectors=true|false (ALPHA - 默认值=false)
kube:AuthorizeWithSelectors=true|false (ALPHA - 默认值=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
kube:CPUManagerPolicyOptions=true|false (BETA - 默认值=true)
kube:CRDValidationRatcheting=true|false (BETA - 默认值=true)
kube:CSIMigrationPortworx=true|false (BETA - 默认值=true)
kube:CSIVolumeHealth=true|false (ALPHA - 默认值=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - 默认值=false)
kube:ClusterTrustBundle=true|false (ALPHA - 默认值=false)
kube:ClusterTrustBundleProjection=true|false (ALPHA - 默认值=false)
kube:ComponentSLIs=true|false (BETA - 默认值=true)
kube:ConcurrentWatchObjectDecode=true|false (BETA - 默认值=false)
kube:ConsistentListFromCache=true|false (BETA - 默认值=true)
kube:ContainerCheckpoint=true|false (BETA - 默认值=true)
kube:ContextualLogging=true|false (BETA - 默认值=true)
kube:CoordinatedLeaderElection=true|false (ALPHA - 默认值=false)
kube:CronJobsScheduledAnnotation=true|false (BETA - 默认值=true)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
kube:CustomResourceFieldSelectors=true|false (BETA - 默认值=true)
kube:DRAControlPlaneController=true|false (ALPHA - 默认值=false)
kube:DisableAllocatorDualWrite=true|false (ALPHA - 默认值=false)
kube:DisableNodeKubeProxyVersion=true|false (BETA - 默认值=true)
kube:DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
kube:EventedPLEG=true|false (ALPHA - 默认值=false)
kube:GracefulNodeShutdown=true|false (BETA - 默认值=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
kube:HPAScaleToZero=true|false (ALPHA - 默认值=false)
kube:HonorPVReclaimPolicy=true|false (BETA - 默认值=true)
kube:ImageMaximumGCAge=true|false (BETA - 默认值=true)
kube:ImageVolume=true|false (ALPHA - 默认值=false)
kube:InPlacePodVerticalScaling=true|false (ALPHA - 默认值=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
kube:InformerResourceVersion=true|false (ALPHA - 默认值=false)
kube:JobBackoffLimitPerIndex=true|false (BETA - 默认值=true)
kube:JobManagedBy=true|false (ALPHA - 默认值=false)
kube:JobPodReplacementPolicy=true|false (BETA - 默认值=true)
kube:JobSuccessPolicy=true|false (BETA - 默认值=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - 默认值=true)
kube:KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - 默认值=false)
kube:KubeletSeparateDiskGC=true|false (BETA - 默认值=true)
kube:KubeletTracing=true|false (BETA - 默认值=true)
kube:LoadBalancerIPMode=true|false (BETA - 默认值=true)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - 默认值=false)
kube:LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
kube:LoggingBetaOptions=true|false (BETA - 默认值=true)
kube:MatchLabelKeysInPodAffinity=true|false (BETA - 默认值=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
kube:MemoryManager=true|false (BETA - 默认值=true)
kube:MemoryQoS=true|false (ALPHA - 默认值=false)
kube:MultiCIDRServiceAllocator=true|false (BETA - 默认值=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
kube:NFTablesProxyMode=true|false (BETA - 默认值=true)
kube:NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
kube:NodeLogQuery=true|false (BETA - 默认值=false)
kube:NodeSwap=true|false (BETA - 默认值=true)
kube:OpenAPIEnums=true|false (BETA - 默认值=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
kube:PodDeletionCost=true|false (BETA - 默认值=true)
kube:PodIndexLabel=true|false (BETA - 默认值=true)
kube:PodLifecycleSleepAction=true|false (BETA - 默认值=true)
kube:PodReadyToStartContainersCondition=true|false (BETA - 默认值=true)
kube:PortForwardWebsockets=true|false (BETA - 默认值=true)
kube:ProcMountType=true|false (BETA - 默认值=false)
kube:QOSReserved=true|false (ALPHA - 默认值=false)
kube:RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
kube:RecursiveReadOnlyMounts=true|false (BETA - 默认值=true)
kube:RelaxedEnvironmentVariableValidation=true|false (ALPHA - 默认值=false)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - 默认值=true)
kube:ResilientWatchCacheInitialization=true|false (BETA - 默认值=true)
kube:ResourceHealthStatus=true|false (ALPHA - 默认值=false)
kube:RetryGenerateName=true|false (BETA - 默认值=true)
kube:RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - 默认值=false)
kube:SELinuxMount=true|false (ALPHA - 默认值=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - 默认值=true)
kube:SchedulerQueueingHints=true|false (BETA - 默认值=false)
kube:SeparateCacheWatchRPC=true|false (BETA - 默认值=true)
kube:SeparateTaintEvictionController=true|false (BETA - 默认值=true)
kube:ServiceAccountTokenJTI=true|false (BETA - 默认值=true)
kube:ServiceAccountTokenNodeBinding=true|false (BETA - 默认值=true)
kube:ServiceAccountTokenNodeBindingValidation=true|false (BETA - 默认值=true)
kube:ServiceAccountTokenPodNodeInfo=true|false (BETA - 默认值=true)
kube:ServiceTrafficDistribution=true|false (BETA - 默认值=true)
kube:SidecarContainers=true|false (BETA - 默认值=true)
kube:SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
kube:StatefulSetAutoDeletePVC=true|false (BETA - 默认值=true)
kube:StorageNamespaceIndex=true|false (BETA - 默认值=true)
kube:StorageVersionAPI=true|false (ALPHA - 默认值=false)
kube:StorageVersionHash=true|false (BETA - 默认值=true)
kube:StorageVersionMigrator=true|false (ALPHA - 默认值=false)
kube:StrictCostEnforcementForVAP=true|false (BETA - 默认值=false)
kube:StrictCostEnforcementForWebhooks=true|false (BETA - 默认值=false)
kube:StructuredAuthenticationConfiguration=true|false (BETA - 默认值=true)
kube:StructuredAuthorizationConfiguration=true|false (BETA - 默认值=true)
kube:SupplementalGroupsPolicy=true|false (ALPHA - 默认值=false)
kube:TopologyAwareHints=true|false (BETA - 默认值=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
kube:TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
kube:TopologyManagerPolicyOptions=true|false (BETA - 默认值=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (BETA - 默认值=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值=true)
kube:UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值=false)
kube:UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值=false)
kube:UserNamespacesSupport=true|false (BETA - 默认值=false)
kube:VolumeAttributesClass=true|false (BETA - 默认值=false)
kube:VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - 默认值=false)
kube:WatchFromStorageWithoutResourceVersion=true|false (BETA - 默认值=false)
kube:WatchList=true|false (ALPHA - 默认值=false)
kube:WatchListClient=true|false (BETA - 默认值=false)
kube:WinDSR=true|false (ALPHA - 默认值=false)
kube:WinOverlay=true|false (BETA - 默认值=true)
kube:WindowsHostNetwork=true|false (ALPHA - 默认值=true)

—goaway-chance float
为防止 HTTP/2 客户端卡在单个 API 服务器上,随机关闭某连接(GOAWAY)。 客户端的其他运行中请求不会受到影响。被关闭的客户端将重新连接, 重新被负载均衡后可能会与其他 API 服务器开始通信。 此参数设置将被发送 GOAWAY 指令的请求的比例。 只有一个 API 服务器或不使用负载均衡器的集群不应启用此特性。 最小值为 0(关闭),最大值为 .02(1/50 请求);建议使用 .001(1/1000)。
-h, —help
kube-apiserver 的帮助命令
—http2-max-streams-per-connection int
服务器为客户端提供的 HTTP/2 连接中最大流数的限制。 零表示使用 GoLang 的默认值。
—kubelet-certificate-authority string
证书颁发机构的证书文件的路径。
—kubelet-client-certificate string
TLS 的客户端证书文件的路径。
—kubelet-client-key string
TLS 客户端密钥文件的路径。
—kubelet-preferred-address-types strings     默认值:Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP
用于 kubelet 连接的首选 NodeAddressTypes 列表。
—kubelet-timeout duration     默认值:5s
kubelet 操作超时时间。
—kubernetes-service-node-port int
如果非零,那么 Kubernetes 主服务(由 apiserver 创建/维护)将是 NodePort 类型, 使用此字段值作为端口值。 如果为零,则 Kubernetes 主服务将为 ClusterIP 类型。
—lease-reuse-duration-seconds int     默认值:60
每个租约被重用的时长。 如果此值比较低,可以避免大量对象重用此租约。 注意,如果此值过小,可能导致存储层出现性能问题。
—livez-grace-period duration
此选项代表 API 服务器完成启动序列并生效所需的最长时间。 从 API 服务器的启动时间到这段时间为止, /livez 将假定未完成的启动后钩子将成功完成,因此返回 true。
—log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数。
—log-text-info-buffer-size quantity

[Alpha] 在具有分割输出流的文本格式中,信息消息可以被缓冲一段时间以提高性能。 默认值零字节表示禁用缓冲区机制。 大小可以指定为字节数(512)、1000 的倍数(1K)、1024 的倍数(2Ki)或它们的幂(3M、4G、5Mi、6Gi)。 启用 LoggingAlphaOptions 特性门控以使用此功能。

—log-text-split-stream

[Alpha] 以文本格式,将错误消息写入 stderr,将信息消息写入 stdout。 默认是将单个流写入标准输出。 启用 LoggingAlphaOptions 特性门控以使用它。

—logging-format string     默认值:”text”

设置日志格式。允许的格式:”text”。

—master-service-namespace string     默认值:”default”
已废弃:应该从其中将 Kubernetes 主服务注入到 Pod 中的名字空间。
—max-connection-bytes-per-sec int
如果不为零,则将每个用户连接的带宽限制为此数值(字节数/秒)。 当前仅适用于长时间运行的请求。
—max-mutating-requests-inflight int     默认值:200
如果 —enable-priority-and-fairness 为 true,那么此值和 —max-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制同时运行的变更类型的请求的个数上限。0 表示无限制。
—max-requests-inflight int     默认值:400
如果 —enable-priority-and-fairness 为 true,那么此值和 —max-mutating-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制进行中非变更类型请求的最大个数,零表示无限制。
—min-request-timeout int     默认值:1800
可选字段,表示处理程序在请求超时前,必须保持连接处于打开状态的最小秒数。 当前只对监听(Watch)请求的处理程序有效。 Watch 请求的处理程序会基于这个值选择一个随机数作为连接超时值, 以达到分散负载的目的。
—oidc-ca-file string
如果设置该值,将会使用 oidc-ca-file 中的机构之一对 OpenID 服务的证书进行验证, 否则将会使用主机的根 CA 对其进行验证。
—oidc-client-id string
OpenID 连接客户端的要使用的客户 ID,如果设置了 oidc-issuer-url,则必须设置这个值。
—oidc-groups-claim string
如果提供该值,这个自定义 OpenID 连接声明将被用来设定用户组。 该声明值需要是一个字符串或字符串数组。 此标志为实验性的,请查阅身份认证相关文档进一步了解详细信息。
—oidc-groups-prefix string
如果提供了此值,则所有组都将以该值作为前缀,以防止与其他身份认证策略冲突。
—oidc-issuer-url string
OpenID 颁发者 URL,只接受 HTTPS 方案。 如果设置该值,它将被用于验证 OIDC JSON Web Token(JWT)。
—oidc-required-claim <逗号分隔的 ‘key=value’ 键值对列表>
描述 ID 令牌中必需声明的键值对。 如果设置此值,则会验证 ID 令牌中存在与该声明匹配的值。 重复此标志以指定多个声明。
—oidc-signing-algs strings     默认值:RS256
允许的 JOSE 非对称签名算法的逗号分隔列表。 具有收支持 “alg” 标头值的 JWTs 有:RS256、RS384、RS512、ES256、ES384、ES512、PS256、PS384、PS512。 取值依据 RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 定义。
—oidc-username-claim string     默认值:”sub”
要用作用户名的 OpenID 声明。 请注意,除默认声明(”sub”)以外的其他声明不能保证是唯一且不可变的。 此标志是实验性的,请参阅身份认证文档以获取更多详细信息。
—oidc-username-prefix string
如果提供,则所有用户名都将以该值作为前缀。 如果未提供,则除 “email” 之外的用户名声明都会添加颁发者 URL 作为前缀,以避免冲突。 要略过添加前缀处理,请设置值为 “-“。
—peer-advertise-ip string

如果设置并启用了 UnknownVersionInteroperabilityProxy 特性门控, 当请求由于 kube-apiservers 之间的版本偏差而无法被处理时, 此 IP 将由对等 kube-apiserver 用于代理请求到该 kube-apiserver。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

—peer-advertise-port string

如果设置并且启用了 UnknownVersionInteroperabilityProxy 特性门控, 当请求由于 kube-apiservers 之间的版本偏差导致对等方无法被处理时, 此端口将由对等 kube-apiserver 用于代理请求到该 kube-apiserver。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

—peer-ca-file string

如果设置并启用了 UnknownVersionInteroperabilityProxy 特性门控, 此文件将被用于验证对等 kube-apiserver 的服务证书。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

—permit-address-sharing

若此标志为 true,则使用 SO_REUSEADDR 来绑定端口。 这样设置可以同时绑定到用通配符表示的类似 0.0.0.0 这种 IP 地址, 以及特定的 IP 地址。也可以避免等待内核释放 TIME_WAIT 状态的套接字。[默认值=false]

—permit-port-sharing
如果为 true,则在绑定端口时将使用 SO_REUSEPORT, 这样多个实例可以绑定到同一地址和端口上。[默认值=false]
—profiling     默认值:true
通过 Web 接口 host:port/debug/pprof/ 启用性能分析。
—proxy-client-cert-file string
当必须调用外部程序以处理请求时,用于证明聚合器或者 kube-apiserver 的身份的客户端证书。 包括代理转发到用户 api-server 的请求和调用 Webhook 准入控制插件的请求。 Kubernetes 期望此证书包含来自于 —requestheader-client-ca-file 标志中所给 CA 的签名。 该 CA 在 kube-system 命名空间的 “extension-apiserver-authentication” ConfigMap 中公开。 从 kube-aggregator 收到调用的组件应该使用该 CA 进行各自的双向 TLS 验证。
—proxy-client-key-file string
当必须调用外部程序来处理请求时,用来证明聚合器或者 kube-apiserver 的身份的客户端私钥。 这包括代理转发给用户 api-server 的请求和调用 Webhook 准入控制插件的请求。
—request-timeout duration     默认值:1m0s
可选字段,指示处理程序在超时之前必须保持打开请求的持续时间。 这是请求的默认请求超时,但对于特定类型的请求,可能会被 —min-request-timeout等标志覆盖。
—requestheader-allowed-names strings
此值为客户端证书通用名称(Common Name)的列表;表中所列的表项可以用来提供用户名, 方式是使用 —requestheader-username-headers 所指定的头部。 如果为空,能够通过 —requestheader-client-ca-file 中机构 认证的客户端证书都是被允许的。
—requestheader-client-ca-file string
在信任请求头中以 —requestheader-username-headers 指示的用户名之前, 用于验证接入请求中客户端证书的根证书包。 警告:一般不要假定传入请求已被授权。
—requestheader-extra-headers-prefix strings
用于查验请求头部的前缀列表。建议使用 X-Remote-Extra-
—requestheader-group-headers strings
用于查验用户组的请求头部列表。建议使用 X-Remote-Group
—requestheader-username-headers strings
用于查验用户名的请求头部字段列表。建议使用 X-Remote-User
—runtime-config <逗号分隔的 ‘key=value’ 对列表>
一组启用或禁用内置 API 的键值对。支持的选项包括:
v1=true|false(针对核心 API 组)
<group>/<version>=true|false(针对特定 API 组和版本,例如:apps/v1=true)
api/all=true|false 控制所有 API 版本
api/ga=true|false 控制所有 v[0-9]+ API 版本
api/beta=true|false 控制所有 v[0-9]+beta[0-9]+ API 版本
api/alpha=true|false 控制所有 v[0-9]+alpha[0-9]+ API 版本
api/legacy 已弃用,并将在以后的版本中删除
—secure-port int     默认值:6443
带身份认证和鉴权机制的 HTTPS 服务端口。 不能用 0 关闭。
—service-account-extend-token-expiration     默认值:true
在生成令牌时,启用投射服务帐户到期时间扩展, 这有助于从旧版令牌安全地过渡到绑定的服务帐户令牌功能。 如果启用此标志,则准入插件注入的令牌的过期时间将延长至 1 年,以防止过渡期间发生意外故障, 并忽略 service-account-max-token-expiration 的值。
—service-account-issuer strings
服务帐号令牌颁发者的标识符。 颁发者将在已颁发令牌的 “iss” 声明中检查此标识符。 此值为字符串或 URI。 如果根据 OpenID Discovery 1.0 规范检查此选项不是有效的 URI,则即使特性门控设置为 true, ServiceAccountIssuerDiscovery 功能也将保持禁用状态。 强烈建议该值符合 OpenID 规范: https://openid.net/specs/openid-connect-discovery-1_0.html 。 实践中,这意味着 service-account-issuer 取值必须是 HTTPS URL。 还强烈建议此 URL 能够在 {service-account-issuer}/.well-known/openid-configuration 处提供 OpenID 发现文档。 当此值被多次指定时,第一次的值用于生成令牌,所有的值用于确定接受哪些发行人。
—service-account-jwks-uri string
覆盖 /.well-known/openid-configuration 提供的发现文档中 JSON Web 密钥集的 URI。 如果发现文档和密钥集是通过 API 服务器外部 (而非自动检测到或被外部主机名覆盖)之外的 URL 提供给依赖方的,则此标志很有用。
—service-account-key-file strings
包含 PEM 编码的 x509 RSA 或 ECDSA 私钥或公钥的文件,用于验证 ServiceAccount 令牌。 指定的文件可以包含多个键,并且可以使用不同的文件多次指定标志。 如果未指定,则使用 —tls-private-key-file。 提供 —service-account-signing-key-file 时必须指定。
—service-account-lookup     默认值:true
如果为 true,则在身份认证时验证 etcd 中是否存在 ServiceAccount 令牌。
—service-account-max-token-expiration duration
服务帐户令牌发布者创建的令牌的最长有效期。 如果请求有效期大于此值的有效令牌请求,将使用此值的有效期颁发令牌。
—service-account-signing-key-file string
包含服务帐户令牌颁发者当前私钥的文件的路径。 颁发者将使用此私钥签署所颁发的 ID 令牌。
—service-cluster-ip-range string
CIDR 表示的 IP 范围用来为服务分配集群 IP。 此地址不得与指定给节点或 Pod 的任何 IP 范围重叠。 最多允许两个双栈 CIDR。
—service-node-port-range <形式为 ‘N1-N2’ 的字符串>     默认值:30000-32767

保留给具有 NodePort 可见性的服务的端口范围。 不得与节点上的临时端口范围重叠。 例如:”30000-32767”。范围的两端都包括在内。

—show-hidden-metrics-for-version string
你要显示隐藏指标的先前版本。仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor>,例如:”1.16”。 这种格式的目的是确保你有机会注意到下一个版本是否隐藏了其他指标, 而不是在此之后将它们从发行版中永久删除时感到惊讶。
—shutdown-delay-duration duration
延迟终止时间。在此期间,服务器将继续正常处理请求。 端点 /healthz 和 /livez 将返回成功,但是 /readyz 立即返回失败。 在此延迟过去之后,将开始正常终止。 这可用于允许负载均衡器停止向该服务器发送流量。
—shutdown-send-retry-after
值为 true 表示 HTTP 服务器将继续监听直到耗尽所有非长时间运行的请求, 在此期间,所有传入请求将被拒绝,状态码为 429,响应头为 “Retry-After”, 此外,设置 “Connection: close” 响应头是为了在空闲时断开 TCP 链接。
—shutdown-watch-termination-grace-period duration

此选项如果被设置了,则表示 API 服务器体面关闭服务器窗口内,等待活跃的监听请求耗尽的最长宽限期。

—storage-backend string
持久化存储后端。选项:”etcd3”(默认)。
—storage-initialization-timeout duration     Default: 1m0s

声明 apiserver 就绪之前等待存储初始化的最长时间。默认值为 1m。

—storage-media-type string     默认值:”application/vnd.kubernetes.protobuf”

用于在存储中存储对象的媒体类型。某些资源或存储后端可能仅支持特定的媒体类型,并且将忽略此设置。 支持的媒体类型:[application/json, application/yaml, application/vnd.kubernetes.protobuf]

—strict-transport-security-directives strings

为 HSTS 所设置的指令列表,用逗号分隔。 如果此列表为空,则不会添加 HSTS 指令。 例如:’max-age=31536000,includeSubDomains,preload’

—tls-cert-file string
包含用于 HTTPS 的默认 x509 证书的文件。(CA 证书(如果有)在服务器证书之后并置)。 如果启用了 HTTPS 服务,并且未提供 —tls-cert-file—tls-private-key-file, 为公共地址生成一个自签名证书和密钥,并将其保存到 —cert-dir 指定的目录中。
—tls-cipher-suites strings
服务器的密码套件的列表,以逗号分隔。如果省略,将使用默认的 Go 密码套件。
首选值: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256。
不安全的值有: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_RC4_128_SHA、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_RC4_128_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_RC4_128_SHA。
—tls-min-version string
支持的最低 TLS 版本。可能的值:VersionTLS10,VersionTLS11,VersionTLS12,VersionTLS13
—tls-private-key-file string
包含匹配 —tls-cert-file 的 x509 证书私钥的文件。
—tls-sni-cert-key string     默认值:[]
一对 x509 证书和私钥文件路径,(可选)后缀为全限定域名的域名模式列表,可以使用带有通配符的前缀。 域模式也允许使用 IP 地址,但仅当 apiserver 对客户端请求的IP地址具有可见性时,才应使用 IP。 如果未提供域模式,则提取证书的名称。 非通配符匹配优先于通配符匹配,显式域模式优先于提取出的名称。 对于多个密钥/证书对,请多次使用 —tls-sni-cert-key。 示例:”example.crt,example.key” 或 “foo.crt,foo.key:*.foo.com,foo.com”。
—token-auth-file string
如果设置该值,这个文件将被用于通过令牌认证来保护 API 服务的安全端口。
—tracing-config-file string
包含 API 服务器跟踪配置的文件。
-v, —v int
日志级别详细程度的数字。
—version version[=true]

—version, —version=raw 打印版本信息并退出; —version=vX.Y.Z… 设置报告的版本

—vmodule pattern=N,…
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录(仅适用于 text 日志格式)。
—watch-cache     默认值:true
在 API 服务器中启用监视缓存。
—watch-cache-sizes strings

某些资源(Pod、Node 等)的监视缓存大小设置,以逗号分隔。 每个资源对应的设置格式:resource[.group]#size,其中 resource 为小写复数(无版本), 对于 apiVersion v1(旧版核心 API)的资源要省略 group, 对其它资源要给出 groupsize 为一个数字。 此选项仅对 API 服务器中的内置资源生效,对 CRD 定义的资源或从外部服务器接入的资源无效。 启用 watch-cache 时仅查询此选项。 这里能生效的 size 设置只有 0,意味着禁用关联资源的 watch-cache。 所有的非零值都等效,意味着不禁用该资源的watch-cache