kube-apiserver

概要

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

kube-apiserver [flags]

选项

--admission-control-config-file 字符串

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

--advertise-address 字符串

用于向集群成员通告 API 服务器的 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 字符串

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

--allow-privileged

如果为 true,则允许特权容器。[默认值:false]

--anonymous-auth     默认值:true

启用对 API 服务器安全端口的匿名请求。未被其他身份验证方法拒绝的请求将被视为匿名请求。匿名请求的用户名为 system:anonymous,组名为 system:unauthenticated。

--api-audiences 字符串

API 的标识符。服务帐户令牌身份验证器将验证针对 API 使用的令牌是否至少绑定到其中一个受众。如果配置了 --service-account-issuer 标志但未配置此标志,则此字段默认为包含颁发者 URL 的单个元素列表。

--audit-log-batch-buffer-size 整数     默认值:10000

在批处理和写入之前存储事件的缓冲区大小。仅在批处理模式下使用。

--audit-log-batch-max-size 整数     默认值:1

批处理的最大大小。仅在批处理模式下使用。

--audit-log-batch-max-wait 时长

在强制写入尚未达到最大大小的批处理之前等待的时间。仅在批处理模式下使用。

--audit-log-batch-throttle-burst 整数

如果之前未使用 ThrottleQPS,则在同一时刻发送的最大请求数。仅在批处理模式下使用。

--audit-log-batch-throttle-enable

是否启用批处理限制。仅在批处理模式下使用。

--audit-log-batch-throttle-qps 浮点数

每秒最大平均批处理数。仅在批处理模式下使用。

--audit-log-compress

如果设置,则轮换的日志文件将使用 gzip 进行压缩。

--audit-log-format 字符串     默认值:"json"

保存的审计的格式。"legacy" 表示每个事件的单行文本格式。"json" 表示结构化 JSON 格式。已知格式为 legacy、json。

--audit-log-maxage 整数

根据文件名中编码的时间戳保留旧审计日志文件的最大天数。

--audit-log-maxbackup 整数

要保留的旧审计日志文件的最大数量。设置为 0 表示对文件数量没有限制。

--audit-log-maxsize 整数

审计日志文件轮换之前的最大大小(以兆字节为单位)。

--audit-log-mode 字符串     默认值:"blocking"

发送审计事件的策略。Blocking 表示发送事件应阻止服务器响应。Batch 使后端异步缓冲和写入事件。已知模式为 batch、blocking、blocking-strict。

--audit-log-path 字符串

如果设置,则发送到 API 服务器的所有请求都将记录到此文件。'-' 表示标准输出。

--audit-log-truncate-enabled

是否启用事件和批处理截断。

--audit-log-truncate-max-batch-size 整数     默认值:10485760

发送到底层后端的批处理的最大大小。实际序列化大小可能会大几百个字节。如果批处理超过此限制,则将其拆分为几个较小的批处理。

--audit-log-truncate-max-event-size 整数     默认值:102400

发送到底层后端的审计事件的最大大小。如果事件的大小大于此数字,则删除第一个请求和响应,如果这还不足以减小大小,则丢弃事件。

--audit-log-version 字符串     默认值:"audit.k8s.io/v1"

用于序列化写入日志的审计事件的 API 组和版本。

--audit-policy-file 字符串

定义审计策略配置文件的路径。

--audit-webhook-batch-buffer-size 整数     默认值:10000

在批处理和写入之前存储事件的缓冲区大小。仅在批处理模式下使用。

--audit-webhook-batch-max-size 整数     默认值:400

批处理的最大大小。仅在批处理模式下使用。

--audit-webhook-batch-max-wait 时长     默认值:30 秒

在强制写入尚未达到最大大小的批处理之前等待的时间。仅在批处理模式下使用。

--audit-webhook-batch-throttle-burst 整数     默认值:15

如果之前未使用 ThrottleQPS,则在同一时刻发送的最大请求数。仅在批处理模式下使用。

--audit-webhook-batch-throttle-enable     默认值:true

是否启用批处理限制。仅在批处理模式下使用。

--audit-webhook-batch-throttle-qps 浮点数     默认值:10

每秒最大平均批处理数。仅在批处理模式下使用。

--audit-webhook-config-file 字符串

定义审计 Webhook 配置的 kubeconfig 格式文件的路径。

--audit-webhook-initial-backoff 时长     默认值:10 秒

在重试第一个失败的请求之前等待的时间。

--audit-webhook-mode 字符串     默认值:"batch"

发送审计事件的策略。Blocking 表示发送事件应阻止服务器响应。Batch 使后端异步缓冲和写入事件。已知模式为 batch、blocking、blocking-strict。

--audit-webhook-truncate-enabled

是否启用事件和批处理截断。

--audit-webhook-truncate-max-batch-size 整数     默认值:10485760

发送到底层后端的批处理的最大大小。实际序列化大小可能会大几百个字节。如果批处理超过此限制,则将其拆分为几个较小的批处理。

--audit-webhook-truncate-max-event-size 整数     默认值:102400

发送到底层后端的审计事件的最大大小。如果事件的大小大于此数字,则删除第一个请求和响应,如果这还不足以减小大小,则丢弃事件。

--audit-webhook-version 字符串     默认值:"audit.k8s.io/v1"

用于序列化写入 Webhook 的审计事件的 API 组和版本。

--authentication-config 字符串

包含身份验证配置的文件,用于配置 JWT 令牌身份验证器。注意:此功能自 v1.29 起处于 Alpha 阶段。需要设置 --feature-gate=StructuredAuthenticationConfiguration=true 才能启用此功能。此功能与 oidc-* 标志互斥。

--authentication-token-webhook-cache-ttl 时长     默认值:2 分钟

缓存来自 Webhook 令牌身份验证器的响应的持续时间。

--authentication-token-webhook-config-file 字符串

包含 kubeconfig 格式的令牌身份验证 Webhook 配置的文件。API 服务器将查询远程服务以确定承载令牌的身份验证。

--authentication-token-webhook-version 字符串     默认值:"v1beta1"

要发送到 Webhook 并期望从 Webhook 接收的 authentication.k8s.io TokenReview 的 API 版本。

--authorization-config 字符串

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

--authorization-mode 字符串

要在安全端口上执行授权的插件的有序列表。如果未使用 --authorization-config,则默认为 AlwaysAllow。以逗号分隔的列表:AlwaysAllow、AlwaysDeny、ABAC、Webhook、RBAC、Node。

--authorization-policy-file 字符串

包含 JSON 行格式的授权策略的文件,与 --authorization-mode=ABAC 一起使用,在安全端口上。

--authorization-webhook-cache-authorized-ttl 时长     默认值:5 分钟

缓存来自 Webhook 授权器的“已授权”响应的持续时间。

--authorization-webhook-cache-unauthorized-ttl 时长     默认值:30 秒

缓存来自 Webhook 授权器的“未授权”响应的持续时间。

--authorization-webhook-config-file 字符串

包含 kubeconfig 格式的 Webhook 配置的文件,与 --authorization-mode=Webhook 一起使用。API 服务器将查询远程服务以确定对 API 服务器安全端口的访问权限。

--authorization-webhook-version 字符串     默认值:"v1beta1"

要发送到 Webhook 并期望从 Webhook 接收的 authorization.k8s.io SubjectAccessReview 的 API 版本。

--bind-address 字符串     默认值:0.0.0.0

侦听 --secure-port 端口的 IP 地址。关联的接口必须可由集群中的其他成员以及 CLI/Web 客户端访问。如果为空白或未指定的地址(0.0.0.0 或 ::),则将使用所有接口和 IP 地址系列。

--cert-dir 字符串     默认值:"/var/run/kubernetes"

TLS 证书所在的目录。如果提供了 --tls-cert-file 和 --tls-private-key-file,则将忽略此标志。

--client-ca-file 字符串

如果设置,则任何提供由 client-ca-file 中的某个授权机构签名的客户端证书的请求都将使用与客户端证书的 CommonName 对应的身份进行身份验证。

--cloud-provider-gce-l7lb-src-cidrs CIDR     默认值:130.211.0.0/22,35.191.0.0/16

在 GCE 防火墙中为 L7 LB 流量代理和健康检查打开的 CIDR

--contention-profiling

如果启用了分析,则启用块分析

--cors-allowed-origins 字符串

允许的 CORS 源列表,以逗号分隔。允许的源可以是正则表达式,以支持子域匹配。如果此列表为空,则不会启用 CORS。请确保每个表达式都通过使用 '^' 锚定到开头或包含 '//' 前缀,以及使用 '$' 锚定到结尾或包含 ':' 端口分隔符后缀来匹配整个主机名。有效表达式的示例包括 '//example.com(:|$)' 和 '^https://example.com(:|$)'

--debug-socket-path 字符串

使用不受保护的(无身份验证/授权)Unix 域套接字,使用给定的路径进行分析

--default-not-ready-toleration-seconds 整数     默认值:300

指示默认情况下添加到每个尚不具有此类容忍度的 Pod 的 notReady:NoExecute 容忍度的 tolerationSeconds。

--default-unreachable-toleration-seconds 整数     默认值:300

指示默认情况下添加到每个尚不具有此类容忍度的 Pod 的 unreachable:NoExecute 容忍度的 tolerationSeconds。

--delete-collection-workers 整数     默认值:1

为 DeleteCollection 调用生成的 worker 数量。这些用于加速命名空间清理。

--disable-admission-plugins 字符串

即使默认启用的插件列表(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、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。此标志中插件的顺序无关紧要。

--disabled-metrics 字符串

此标志为行为异常的指标提供了一个紧急出口。您必须提供完全限定的指标名称才能禁用它。免责声明:禁用指标的优先级高于显示隐藏指标。

--egress-selector-config-file 字符串

包含 apiserver 出站选择器配置的文件。

--enable-admission-plugins 字符串

除了默认启用的插件(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、PersistentVolumeLabel、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”的密钥进行 TLS 引导身份验证。

--enable-garbage-collector     默认值:true

启用通用垃圾收集器。必须与 kube-controller-manager 的相应标志同步。

--enable-priority-and-fairness     默认值:true

如果为 true,则将最大并发处理程序替换为增强的处理程序,该处理程序按优先级和公平性进行排队和调度

--encryption-provider-config 字符串

包含用于在 etcd 中存储密钥的加密提供程序配置的文件

--encryption-provider-config-automatic-reload

确定如果磁盘内容发生更改,是否应自动重新加载 --encryption-provider-config 设置的文件。如果设置为 true,则无法通过 API 服务器 healthz 端点唯一标识不同的 KMS 插件。

--endpoint-reconciler-type 字符串     默认值:“lease”

使用端点协调器(master-count、lease、none)master-count 已弃用,将在未来版本中删除。

--etcd-cafile 字符串

用于保护 etcd 通信的 SSL 证书颁发机构文件。

--etcd-certfile 字符串

用于保护 etcd 通信的 SSL 证书文件。

--etcd-compaction-interval 持续时间     默认值:5m0s

压缩请求的时间间隔。如果为 0,则禁用来自 apiserver 的压缩请求。

--etcd-count-metric-poll-period 持续时间     默认值:1m0s

轮询 etcd 以获取每种类型资源数量的频率。0 表示禁用指标收集。

--etcd-db-metric-poll-interval 持续时间     默认值:30 秒

轮询 etcd 和更新指标的请求间隔。0 表示禁用指标收集

--etcd-healthcheck-timeout 持续时间     默认值:2 秒

检查 etcd 健康状况时使用的超时时间。

--etcd-keyfile 字符串

用于保护 etcd 通信的 SSL 密钥文件。

--etcd-prefix 字符串     默认值:"/registry"

要添加到 etcd 中所有资源路径的前缀。

--etcd-readycheck-timeout 持续时间     默认值:2 秒

检查 etcd 就绪状态时使用的超时时间

--etcd-servers 字符串

要连接的 etcd 服务器列表(scheme://ip:port),以逗号分隔。

--etcd-servers-overrides 字符串

每个资源的 etcd 服务器覆盖,以逗号分隔。单个覆盖格式:group/resource#servers,其中服务器是 URL,以分号分隔。请注意,这仅适用于编译到此服务器二进制文件中的资源。

--event-ttl 持续时间     默认值:1h0m0s

保留事件的时间。

--external-hostname 字符串

为该主服务器生成外部化 URL 时使用的主机名(例如 Swagger API 文档或 OpenID 发现)。

--feature-gates <以逗号分隔的“key=True|False”对>

一组描述 alpha/实验性功能的功能门的键值对。选项有
APIResponseCompression=true|false (BETA - 默认值=true)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (BETA - 默认值=true)
APIServingWithRoutine=true|false (BETA - 默认值=true)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AnyVolumeDataSource=true|false (BETA - 默认值=true)
AppArmor=true|false (BETA - 默认值=true)
AppArmorFields=true|false (BETA - 默认值=true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
CPUManagerPolicyOptions=true|false (BETA - 默认值=true)
CRDValidationRatcheting=true|false (BETA - 默认值=true)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值=false)
ClusterTrustBundle=true|false (ALPHA - 默认值=false)
ClusterTrustBundleProjection=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (BETA - 默认值=true)
ConsistentListFromCache=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (BETA - 默认值=true)
ContextualLogging=true|false (BETA - 默认值=true)
CronJobsScheduledAnnotation=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResourceFieldSelectors=true|false (ALPHA - 默认值=false)
DevicePluginCDIDevices=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (BETA - 默认值=true)
DisableKubeletCloudCredentialProviders=true|false (BETA - 默认值=true)
DisableNodeKubeProxyVersion=true|false (ALPHA - 默认值=false)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
ElasticIndexedJob=true|false (BETA - 默认值=true)
EventedPLEG=true|false (ALPHA - 默认值=false)
GracefulNodeShutdown=true|false (BETA - 默认值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
ImageMaximumGCAge=true|false (BETA - 默认值=true)
InPlacePodVerticalScaling=true|false (ALPHA - 默认值=false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
InformerResourceVersion=true|false (ALPHA - 默认值=false)
JobBackoffLimitPerIndex=true|false (BETA - 默认值=true)
JobManagedBy=true|false (ALPHA - 默认值=false)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobPodReplacementPolicy=true|false (BETA - 默认值=true)
JobSuccessPolicy=true|false (ALPHA - 默认值=false)
KubeProxyDrainingTerminatingNodes=true|false (BETA - 默认值=true)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值=false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值=false)
KubeletSeparateDiskGC=true|false (ALPHA - 默认值=false)
KubeletTracing=true|false (BETA - 默认值=true)
LoadBalancerIPMode=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
LoggingBetaOptions=true|false (BETA - 默认值=true)
MatchLabelKeysInPodAffinity=true|false (ALPHA - 默认值=false)
MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值=true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值=false)
MutatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
NFTablesProxyMode=true|false (ALPHA - 默认值=false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeLogQuery=true|false (BETA - 默认值=false)
NodeSwap=true|false (BETA - 默认值=true)
OpenAPIEnums=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值=true)
PersistentVolumeLastPhaseTransitionTime=true|false (BETA - 默认值=true)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodIndexLabel=true|false (BETA - 默认值=true)
PodLifecycleSleepAction=true|false (BETA - 默认值=true)
PodReadyToStartContainersCondition=true|false (BETA - 默认值=true)
PortForwardWebsockets=true|false (ALPHA - 默认值=false)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RecursiveReadOnlyMounts=true|false (ALPHA - 默认值=false)
RelaxedEnvironmentVariableValidation=true|false (ALPHA - 默认值=false)
RetryGenerateName=true|false (ALPHA - 默认值=false)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RuntimeClassInImageCriApi=true|false (ALPHA - 默认值=false)
SELinuxMount=true|false (ALPHA - 默认值=false)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值=true)
SchedulerQueueingHints=true|false (BETA - 默认值=false)
SeparateCacheWatchRPC=true|false (BETA - 默认值=true)
SeparateTaintEvictionController=true|false (BETA - 默认值=true)
ServiceAccountTokenJTI=true|false (BETA - 默认值=true)
ServiceAccountTokenNodeBinding=true|false (ALPHA - 默认值=false)
ServiceAccountTokenNodeBindingValidation=true|false (BETA - 默认值=true)
ServiceAccountTokenPodNodeInfo=true|false (BETA - 默认值=true)
ServiceTrafficDistribution=true|false (ALPHA - 默认值=false)
SidecarContainers=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值=true)
StatefulSetStartOrdinal=true|false (BETA - 默认值=true)
StorageNamespaceIndex=true|false (BETA - 默认值=true)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
StorageVersionMigrator=true|false (ALPHA - 默认值=false)
StructuredAuthenticationConfiguration=true|false (BETA - 默认值=true)
StructuredAuthorizationConfiguration=true|false (BETA - 默认值=true)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值=true)
TranslateStreamCloseWebsocketRequests=true|false (BETA - 默认值=true)
UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值=true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值=false)
UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值=false)
UserNamespacesSupport=true|false (BETA - 默认值=false)
VolumeAttributesClass=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WatchFromStorageWithoutResourceVersion=true|false (BETA - 默认值=false)
WatchList=true|false (ALPHA - 默认值=false)
WatchListClient=true|false (BETA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)

--goaway-chance 浮点数

为了防止 HTTP/2 客户端卡在单个 apiserver 上,随机关闭连接(GOAWAY)。客户端的其他进行中的请求不会受到影响,客户端将重新连接,在再次通过负载均衡器后可能会连接到不同的 apiserver。此参数设置将发送 GOAWAY 的请求的比例。具有单个 apiserver 或不使用负载均衡器的集群不应启用此功能。最小值为 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

此选项表示 apiserver 完成其启动顺序并变为活动状态所需的最长时间。从 apiserver 启动到经过此时间段后,/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。默认设置是将单个流写入 stdout。启用 LoggingAlphaOptions 功能门控以使用此功能。

--logging-format string     默认值: "text"

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

--max-connection-bytes-per-sec int

如果非零,则将每个用户连接限制为每秒此字节数。目前仅适用于长时间运行的请求。

--max-mutating-requests-inflight int     默认值: 200

如果 --enable-priority-and-fairness 为 true,则此参数和 --max-requests-inflight 相加以确定服务器的总并发限制(必须为正数)。否则,此标志限制正在进行的可变请求的最大数量,或者零值完全禁用限制。

--max-requests-inflight int     默认值: 400

如果 --enable-priority-and-fairness 为 true,则此参数和 --max-mutating-requests-inflight 相加以确定服务器的总并发限制(必须为正数)。否则,此标志限制正在进行的非可变请求的最大数量,或者零值完全禁用限制。

--min-request-timeout int     默认值: 1800

一个可选字段,指示处理程序在超时之前必须保持请求打开的最短秒数。目前仅由 watch 请求处理程序遵守,该处理程序选择高于此数字的随机值作为连接超时,以分散负载。

--oidc-ca-file string

如果设置,则 OpenID 服务器的证书将由 oidc-ca-file 中的某个颁发机构验证,否则将使用主机的根 CA 集。

--oidc-client-id string

OpenID Connect 客户端的客户端 ID,如果设置了 oidc-issuer-url,则必须设置。

--oidc-groups-claim string

如果提供,则为用于指定用户组的自定义 OpenID Connect 声明的名称。声明值应为字符串或字符串数组。此标志是实验性的,请参阅身份验证文档以获取更多详细信息。

--oidc-groups-prefix string

如果提供,则所有组都将以此值作为前缀,以防止与其他身份验证策略冲突。

--oidc-issuer-url string

OpenID 颁发者的 URL,仅接受 HTTPS 方案。如果设置,它将用于验证 OIDC JSON Web 令牌 (JWT)。

--oidc-required-claim <逗号分隔的“键=值”对>

描述 ID 令牌中必需声明的键=值对。如果设置,则验证声明是否存在于 ID 令牌中并具有匹配的值。重复此标志以指定多个声明。

--oidc-signing-algs strings     默认值: "RS256"

允许的 JOSE 非对称签名算法的逗号分隔列表。具有受支持的“alg”标头值的 JWT 为: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

如果提供,则所有用户名都将以此值作为前缀。如果未提供,则“电子邮件”以外的用户名声明将以颁发者 URL 作为前缀,以避免冲突。要跳过任何前缀,请提供值“-”。

--peer-advertise-ip string

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

--peer-advertise-port string

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

--peer-ca-file string

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

--permit-address-sharing

如果为 true,则在绑定端口时将使用 SO_REUSEADDR。这允许并行绑定到通配符 IP(如 0.0.0.0)和特定 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 准入插件。预计此证书包含来自 --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

允许在 --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 <逗号分隔的“键=值”对>

一组启用或禁用内置 API 的键=值对。支持的选项有
v1=true|false 用于核心 API 组
<组>/<版本>=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

在令牌生成期间启用 projected service account 过期时间延长,这有助于从旧令牌安全过渡到绑定服务帐户令牌功能。如果启用此标志,则注入准入的令牌将延长至多 1 年,以防止在转换期间出现意外故障,并忽略 service-account-max-token-expiration 的值。

--service-account-issuer 字符串

服务帐户令牌颁发者的标识符。颁发者将在颁发令牌的“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 字符串

覆盖 /.well-known/openid-configuration 中提供的发现文档中 JSON Web 密钥集的 URI。如果发现文档和密钥集是从 API 服务器外部 URL(如自动检测到的或使用 external-hostname 覆盖的)提供给依赖方的,则此标志很有用。

--service-account-key-file 字符串

包含 PEM 编码的 x509 RSA 或 ECDSA 私钥或公钥的文件,用于验证 ServiceAccount 令牌。指定的文件可以包含多个密钥,并且可以使用不同的文件多次指定该标志。如果未指定,则使用 --tls-private-key-file。当提供 --service-account-signing-key-file 时,必须指定此项。

--service-account-lookup     默认值:true

如果为 true,则验证 ServiceAccount 令牌作为身份验证的一部分是否存在于 etcd 中。

--service-account-max-token-expiration 时长

由服务帐户令牌颁发者创建的令牌的最大有效期。如果请求的有效期大于此值的有效 TokenRequest,则将颁发有效期为此值的令牌。

--service-account-signing-key-file 字符串

包含服务帐户令牌颁发者的当前私钥的文件的路径。颁发者将使用此私钥对颁发的 ID 令牌进行签名。

--service-cluster-ip-range 字符串

用于分配服务集群 IP 的 CIDR 表示法 IP 范围。这不得与分配给节点或 Pod 的任何 IP 范围重叠。最多允许两个双栈 CIDR。

--service-node-port-range <格式为“N1-N2”的字符串>     默认值:30000-32767

要为具有 NodePort 可见性的服务保留的端口范围。这不得与节点上的临时端口范围重叠。示例:“30000-32767”。包括范围的两端。

--show-hidden-metrics-for-version 字符串

要显示其隐藏指标的先前版本。只有先前的次要版本才有意义,其他值将不被允许。格式为 <major>.<minor>,例如:“1.16”。这种格式的目的是确保您有机会注意到下一个版本是否隐藏了其他指标,而不是在该版本之后的版本中永久删除它们时感到惊讶。

--shutdown-delay-duration 时长

延迟终止的时间。在此期间,服务器将继续正常提供请求。端点 /healthz 和 /livez 将返回成功,但 /readyz 会立即返回失败。正常终止在此延迟结束后开始。这可用于允许负载均衡器停止向此服务器发送流量。

--shutdown-send-retry-after

如果为 true,则 HTTP 服务器将继续侦听,直到所有未完成的非长时间运行请求都已耗尽,在此期间,所有传入请求都将被拒绝,状态代码为 429,并带有“Retry-After”响应标头,此外,还会设置“Connection: close”响应标头,以便在空闲时断开 TCP 连接。

--shutdown-watch-termination-grace-period 时长

如果设置了此选项,则表示在正常服务器关闭窗口期间,apiserver 将等待活动监视请求耗尽的最长宽限期。

--storage-backend 字符串

用于持久化的存储后端。选项:'etcd3'(默认)。

--storage-media-type 字符串     默认值:“application/vnd.kubernetes.protobuf”

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

--strict-transport-security-directives 字符串

HSTS 指令列表,以逗号分隔。如果此列表为空,则不会添加 HSTS 指令。示例:“max-age=31536000,includeSubDomains,preload”

--tls-cert-file 字符串

包含 HTTPS 默认 x509 证书的文件。(如有 CA 证书,则连接在服务器证书之后)。如果启用了 HTTPS 服务,并且未提供 --tls-cert-file 和 --tls-private-key-file,则会为公共地址生成自签名证书和密钥,并将其保存到 --cert-dir 指定的目录中。

--tls-cipher-suites 字符串

服务器密码套件的逗号分隔列表。如果省略,则将使用默认的 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_AES_128_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 字符串

支持的最低 TLS 版本。可能的值:VersionTLS10、VersionTLS11、VersionTLS12、VersionTLS13

--tls-private-key-file 字符串

包含与 --tls-cert-file 匹配的默认 x509 私钥的文件。

--tls-sni-cert-key 字符串

一对 x509 证书和私钥文件路径,可选后缀为域模式列表,这些域模式是完全限定域名,可能带有前缀通配符段。域模式也允许 IP 地址,但仅当 apiserver 对客户端请求的 IP 地址具有可见性时,才应使用 IP。如果没有提供域模式,则提取证书的名称。非通配符匹配优先于通配符匹配,显式域模式优先于提取的名称。对于多个密钥/证书对,请多次使用 --tls-sni-cert-key。示例:“example.crt,example.key”或“foo.crt,foo.key:*.foo.com,foo.com”。

--token-auth-file 字符串

如果设置,将使用该文件通过令牌身份验证保护 API 服务器的安全端口。

--tracing-config-file 字符串

包含 apiserver 跟踪配置的文件。

-v, --v 整数

日志级别详细程度的数字

--version 版本[=true]

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

--vmodule 模式=N,...

用于文件过滤日志记录的模式=N 设置的逗号分隔列表(仅适用于文本日志格式)

--watch-cache     默认值:true

在 apiserver 中启用监视缓存

--watch-cache-sizes 字符串

某些资源(Pod、节点等)的监视缓存大小设置,以逗号分隔。单个设置格式:resource[.group]#size,其中 resource 是小写复数(无版本),group 对于 apiVersion v1(旧版核心 API)的资源省略,对于其他资源则包含,size 是一个数字。此选项仅对内置于 apiserver 中的资源有意义,对由 CRD 定义或从外部服务器聚合的资源没有意义,并且仅在启用了 watch-cache 时才会被查询。此处唯一有意义的大小设置为零,这意味着禁用关联资源的监视缓存;所有非零值都是等效的,表示不为此资源禁用监视缓存

本页面由系统自动生成。

如果您计划报告此页面的问题,请在问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:2024 年 4 月 18 日下午 6:12 PST:更新 v1.30 的 kube-xxx 组件引用 (571276338b)