kube-apiserver

概要

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

kube-apiserver [flags]

选项

--admission-control-config-file string

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

--advertise-address string

在该 IP 地址上向集群成员宣传 apiserver。此地址必须对集群的其余部分可访问。如果为空,将使用 --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" 表示每个事件的 1 行文本格式。 "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

如果设置,所有到达 apiserver 的请求都将记录到此文件中。 '-' 表示标准输出。

--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 float     默认值: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-* 标志互斥。

--authentication-token-webhook-cache-ttl duration     默认值:2m0s

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

--authentication-token-webhook-config-file string

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

--authentication-token-webhook-version string     默认值:"v1beta1"

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

--authorization-config string

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

--authorization-mode strings

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

--authorization-policy-file string

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

--authorization-webhook-cache-authorized-ttl duration     默认值:5m0s

从 Webhook 授权器缓存 'authorized' 响应的持续时间。

--authorization-webhook-cache-unauthorized-ttl duration     默认值:30s

从 Webhook 授权器缓存 'unauthorized' 响应的持续时间。

--authorization-webhook-config-file string

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

--authorization-webhook-version string     默认值:"v1beta1"

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

--bind-address string     默认值:0.0.0.0

在该 IP 地址上监听 --secure-port 端口。关联的接口必须对集群的其余部分以及 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

如果设置,则任何呈现由 client-ca-file 中的某个颁发机构签名的客户端证书的请求都将使用与客户端证书的通用名相对应的一个身份进行身份验证。

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

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

--contention-profiling

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

--cors-allowed-origins strings

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

--debug-socket-path string

使用未受保护的(无 authn/authz)unix-domain 套接字,使用给定路径进行分析。

--default-not-ready-toleration-seconds int     默认值:300

表示默认添加到每个没有此类容忍度的 Pod 的 notReady:NoExecute 容忍度的容忍秒数。

--default-unreachable-toleration-seconds int     默认值:300

表示默认添加到每个没有此类容忍度的 Pod 的 unreachable:NoExecute 容忍度的容忍秒数。

--delete-collection-workers int     默认值:1

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

--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、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。此标志中插件的顺序无关紧要。

--disabled-metrics strings

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

--egress-selector-config-file string

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

--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、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

如果为真,则用一个增强的处理程序替换最大飞行处理程序,该处理程序按优先级和公平性排队和调度。

--encryption-provider-config string

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

--encryption-provider-config-automatic-reload

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

--endpoint-reconciler-type string     默认:”lease”

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

--etcd-cafile string

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

--etcd-certfile string

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

--etcd-compaction-interval duration     默认:5m0s

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

--etcd-count-metric-poll-period duration     默认:1m0s

按类型轮询 etcd 获取资源数量的频率。 0 禁用指标收集。

--etcd-db-metric-poll-interval duration     默认:30s

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

--etcd-healthcheck-timeout duration     默认:2s

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

--etcd-keyfile string

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

--etcd-prefix string     默认:”/registry”

要在 etcd 中预先附加到所有资源路径的前缀。

--etcd-readycheck-timeout duration     默认:2s

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

--etcd-servers strings

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

--etcd-servers-overrides strings

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

--event-ttl duration     默认:1h0m0s

保留事件的时间量。

--external-hostname string

为该主服务器生成外部化 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 float

为了防止 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 为真,则此标志和 --max-requests-inflight 相加以确定服务器的总并发限制(必须为正)。否则,此标志限制正在进行的突变请求的最大数量,或零值完全禁用限制。

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

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

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

一个可选字段,指示处理程序在超时之前必须保持请求打开的最小秒数。目前仅被监视请求处理程序接受,该处理程序选择一个比此数字更大的随机值作为连接超时,以分散负载。

--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 Token (JWT)。

--oidc-required-claim <逗号分隔的 'key=value' 对>

一个 key=value 对,描述 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

如果提供,所有用户名都将以该值作为前缀。如果没有提供,除了 'email' 之外的用户名声明都以发行者 URL 为前缀,以避免冲突。要跳过任何前缀,请提供值 '-'。

--peer-advertise-ip string

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

--peer-advertise-port string

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

--peer-ca-file string

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

--permit-address-sharing

如果为真,则在绑定端口时将使用 SO_REUSEADDR。这允许绑定到通配符 IP(如 0.0.0.0)和特定 IP 并行,并且可以避免等待内核在 TIME_WAIT 状态下释放套接字。[默认值 = false]

--permit-port-sharing

如果为真,则在绑定端口时将使用 SO_REUSEPORT,这允许多个实例绑定到同一地址和端口。[默认值 = false]

--profiling     默认值:true

通过网络界面 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' 配置图中。从 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 <逗号分隔的 'key=value' 对>

一组 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(如自动检测或使用 external-hostname 覆盖)提供给依赖方,则此标志很有用。

--service-account-key-file strings

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

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

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

--service-account-max-token-expiration duration

由服务帐户令牌发行者创建的令牌的最大有效期。如果请求的有效期超过此值的有效 TokenRequest,则将使用此值的有效期发出令牌。

--service-account-signing-key-file string

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

--service-cluster-ip-range string

用于分配服务集群 IP 的 CIDR 表示法 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 持续时间

延迟终止的时间。在此期间,服务器正常地继续提供服务。端点 /healthz 和 /livez 将返回成功,但 /readyz 立即返回失败。此延迟过后,将开始优雅终止。这可以用来让负载均衡器停止向此服务器发送流量。

--shutdown-send-retry-after

如果为真,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 地址,但 IP 仅应在 apiserver 可以看到客户端请求的 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: 更新 kube-xxx 组件引用以适应 v1.30 (571276338b)