kube-apiserver

Synopsis

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

kube-apiserver [flags]

Options

--admission-control-config-file string

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

--advertise-address string

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

如果设置,所有发往 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 令牌身份验证器或匿名身份验证器。需要 StructuredAuthenticationConfiguration 功能门。还需要 AnonymousAuthConfigurableEndpoints 功能门来配置配置文件中的匿名身份验证器。如果文件配置了 JWT 令牌身份验证器,则此标志与 --oidc-* 标志互斥。如果文件配置了匿名身份验证器,则此标志与 --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

包含授权配置的文件,用于配置授权器链。需要 StructuredAuthorizationConfiguration 功能门。此标志与其他 --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 授权器“已授权”响应的持续时间。

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

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

--authorization-webhook-config-file string

使用 --authorization-mode=Webhook 时,包含 kubeconfig 格式的 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

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

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

表示将默认添加到每个尚未具有该容忍度的 Pod 的 notReady:NoExecute 容忍度的 tolerationSeconds。

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

表示将默认添加到每个尚未具有该容忍度的 Pod 的 unreachable:NoExecute 容忍度的 tolerationSeconds。

--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, PodTopologyLabels, MutatingAdmissionPolicy, MutatingAdmissionWebhook, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook, ResourceQuota)。逗号分隔的准入插件列表:AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, ClusterTrustBundleAttest, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionPolicy, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PodNodeSelector, PodSecurity, PodTolerationRestriction, PodTopologyLabels, Priority, ResourceQuota, RuntimeClass, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook。此标志中插件的顺序无关紧要。

--disable-http2-serving

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

--disabled-metrics strings

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

--egress-selector-config-file string

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

--emulated-version strings

不同组件模拟其功能(API、功能等)的版本。
如果设置,组件将模拟此版本而不是底层二进制版本。
版本格式只能是 major.minor,例如:“--emulated-version=wardle=1.2,kube=1.31”。
选项是:kube=1.31..1.33(默认:1.33)
如果未指定组件,则默认为“kube”

--emulation-forward-compatible

如果为 true,则默认启用或通过 --runtime-config 在仿真版本中启用的 beta+ API,即使它们是在仿真版本之后引入的,它们未来版本(具有更高优先级/稳定性)也将被自动启用。只有当仿真版本低于二进制版本时,才能设置为 true。

--enable-admission-plugins strings

应在默认启用的插件之外额外启用的准入插件(NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, ClusterTrustBundleAttest, CertificateSubjectRestriction, DefaultIngressClass, PodTopologyLabels, MutatingAdmissionPolicy, MutatingAdmissionWebhook, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook, ResourceQuota)。逗号分隔的准入插件列表:AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, ClusterTrustBundleAttest, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionPolicy, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PodNodeSelector, PodSecurity, PodTolerationRestriction, PodTopologyLabels, 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 会禁用通过 apiserver 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 服务器列表(scheme://ip:port),逗号分隔。

--etcd-servers-overrides strings

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

--event-ttl duration     默认: 1h0m0s

保留事件的时间。

--external-hostname string

生成此 master 的外部化 URL(例如 Swagger API Docs 或 OpenID Discovery)时使用的主机名。

--feature-gates colonSeparatedMultimapStringString

逗号分隔的组件:key=value 对列表,描述不同组件的 Alpha/实验性功能的特性门。
如果未指定组件,则默认为“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:AllowParsingUserUIDFromCertAuth=true|false (BETA - 默认=true)
kube:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - 默认=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (BETA - 默认=true)
kube:AuthorizeNodeWithSelectors=true|false (BETA - 默认=true)
kube:AuthorizeWithSelectors=true|false (BETA - 默认=true)
kube:CBORServingAndStorage=true|false (ALPHA - 默认=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - 默认=true)
kube:CSIVolumeHealth=true|false (ALPHA - 默认=false)
kube:ClientsAllowCBOR=true|false (ALPHA - 默认=false)
kube:ClientsPreferCBOR=true|false (ALPHA - 默认=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - 默认=false)
kube:ClusterTrustBundle=true|false (BETA - 默认=false)
kube:ClusterTrustBundleProjection=true|false (BETA - 默认=false)
kube:ComponentFlagz=true|false (ALPHA - 默认=false)
kube:ComponentStatusz=true|false (ALPHA - 默认=false)
kube:ConcurrentWatchObjectDecode=true|false (BETA - 默认=false)
kube:ConsistentListFromCache=true|false (BETA - 默认=true)
kube:ContainerCheckpoint=true|false (BETA - 默认=true)
kube:ContainerStopSignals=true|false (ALPHA - 默认=false)
kube:ContextualLogging=true|false (BETA - 默认=true)
kube:CoordinatedLeaderElection=true|false (BETA - 默认=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认=false)
kube:DRAAdminAccess=true|false (ALPHA - 默认=false)
kube:DRADeviceTaints=true|false (ALPHA - 默认=false)
kube:DRAPartitionableDevices=true|false (ALPHA - 默认=false)
kube:DRAPrioritizedList=true|false (ALPHA - 默认=false)
kube:DRAResourceClaimDeviceStatus=true|false (BETA - 默认=true)
kube:DeclarativeValidation=true|false (BETA - 默认=true)
kube:DeclarativeValidationTakeover=true|false (BETA - 默认=false)
kube:DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - 默认=false)
kube:DisableAllocatorDualWrite=true|false (BETA - 默认=false)
kube:DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - 默认=true)
kube:DynamicResourceAllocation=true|false (BETA - 默认=false)
kube:EventedPLEG=true|false (ALPHA - 默认=false)
kube:ExternalServiceAccountTokenSigner=true|false (ALPHA - 默认=false)
kube:GracefulNodeShutdown=true|false (BETA - 默认=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认=true)
kube:HPAConfigurableTolerance=true|false (ALPHA - 默认=false)
kube:HPAScaleToZero=true|false (ALPHA - 默认=false)
kube:ImageMaximumGCAge=true|false (BETA - 默认=true)
kube:ImageVolume=true|false (BETA - 默认=false)
kube:InOrderInformers=true|false (BETA - 默认=true)
kube:InPlacePodVerticalScaling=true|false (BETA - 默认=true)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - 默认=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - 默认=false)
kube:InformerResourceVersion=true|false (ALPHA - 默认=false)
kube:JobManagedBy=true|false (BETA - 默认=true)
kube:JobPodReplacementPolicy=true|false (BETA - 默认=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - 默认=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - 默认=false)
kube:KubeletEnsureSecretPulledImages=true|false (ALPHA - 默认=false)
kube:KubeletFineGrainedAuthz=true|false (BETA - 默认=true)
kube:KubeletInUserNamespace=true|false (ALPHA - 默认=false)
kube:KubeletPSI=true|false (ALPHA - 默认=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - 默认=false)
kube:KubeletSeparateDiskGC=true|false (BETA - 默认=true)
kube:KubeletServiceAccountTokenForCredentialProviders=true|false (ALPHA - 默认=false)
kube:KubeletTracing=true|false (BETA - 默认=true)
kube:ListFromCacheSnapshot=true|false (ALPHA - 默认=false)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - 默认=false)
kube:LoggingAlphaOptions=true|false (ALPHA - 默认=false)
kube:LoggingBetaOptions=true|false (BETA - 默认=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - 默认=false)
kube:MemoryQoS=true|false (ALPHA - 默认=false)
kube:MutableCSINodeAllocatableCount=true|false (ALPHA - 默认=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - 默认=false)
kube:NodeLogQuery=true|false (BETA - 默认=false)
kube:NodeSwap=true|false (BETA - 默认=true)
kube:OpenAPIEnums=true|false (BETA - 默认=true)
kube:OrderedNamespaceDeletion=true|false (BETA - 默认=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - 默认=false)
kube:PodDeletionCost=true|false (BETA - 默认=true)
kube:PodLevelResources=true|false (ALPHA - 默认=false)
kube:PodLifecycleSleepAction=true|false (BETA - 默认=true)
kube:PodLifecycleSleepActionAllowZero=true|false (BETA - 默认=true)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - 默认=false)
kube:PodObservedGenerationTracking=true|false (ALPHA - 默认=false)
kube:PodReadyToStartContainersCondition=true|false (BETA - 默认=true)
kube:PodTopologyLabelsAdmission=true|false (ALPHA - 默认=false)
kube:PortForwardWebsockets=true|false (BETA - 默认=true)
kube:PreferSameTrafficDistribution=true|false (ALPHA - 默认=false)
kube:ProcMountType=true|false (BETA - 默认=true)
kube:QOSReserved=true|false (ALPHA - 默认=false)
kube:RecoverVolumeExpansionFailure=true|false (BETA - 默认=true)
kube:ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - 默认=false)
kube:RelaxedDNSSearchValidation=true|false (BETA - 默认=true)
kube:RelaxedEnvironmentVariableValidation=true|false (BETA - 默认=true)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - 默认=true)
kube:RemoteRequestHeaderUID=true|false (BETA - 默认=true)
kube:ResilientWatchCacheInitialization=true|false (BETA - 默认=true)
kube:ResourceHealthStatus=true|false (ALPHA - 默认=false)
kube:RotateKubeletServerCertificate=true|false (BETA - 默认=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - 默认=false)
kube:SELinuxChangePolicy=true|false (BETA - 默认=true)
kube:SELinuxMount=true|false (BETA - 默认=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - 默认=true)
kube:SchedulerAsyncPreemption=true|false (BETA - 默认=true)
kube:SchedulerPopFromBackoffQ=true|false (BETA - 默认=true)
kube:SchedulerQueueingHints=true|false (BETA - 默认=true)
kube:SeparateTaintEvictionController=true|false (BETA - 默认=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (BETA - 默认=true)
kube:StorageCapacityScoring=true|false (ALPHA - 默认=false)
kube:StorageVersionAPI=true|false (ALPHA - 默认=false)
kube:StorageVersionHash=true|false (BETA - 默认=true)
kube:StorageVersionMigrator=true|false (ALPHA - 默认=false)
kube:StreamingCollectionEncodingToJSON=true|false (BETA - 默认=true)
kube:StreamingCollectionEncodingToProtobuf=true|false (BETA - 默认=true)
kube:StrictIPCIDRValidation=true|false (ALPHA - 默认=false)
kube:StructuredAuthenticationConfiguration=true|false (BETA - 默认=true)
kube:SupplementalGroupsPolicy=true|false (BETA - 默认=true)
kube:SystemdWatchdog=true|false (BETA - 默认=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认=false)
kube:TopologyManagerPolicyBetaOptions=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 - 默认=true)
kube:VolumeAttributesClass=true|false (BETA - 默认=false)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - 默认=false)
kube:WatchList=true|false (BETA - 默认=false)
kube:WatchListClient=true|false (BETA - 默认=false)
kube:WinDSR=true|false (BETA - 默认=true)
kube:WinOverlay=true|false (BETA - 默认=true)
kube:WindowsCPUAndMemoryAffinity=true|false (ALPHA - 默认=false)
kube:WindowsGracefulNodeShutdown=true|false (ALPHA - 默认=false)

--goaway-chance float

为防止 HTTP/2 客户端卡在单个 apiserver 上,随机关闭一个连接 (GOAWAY)。客户端的其他正在进行的请求不会受到影响,客户端将重新连接,很可能在再次通过负载均衡器后连接到另一个 apiserver。此参数设置了发送 GOAWAY 的请求的比例。单 apiserver 的集群或不使用负载均衡器的集群不应启用此项。最小值为 0(关闭),最大值为 0.02(1/50 个请求);0.001(1/1000)是一个推荐的起始点。

-h, --help

kube-apiserver 的帮助

--http2-max-streams-per-connection int

服务器为每个 HTTP/2 连接允许客户端的最大流数。零表示使用 Go 的默认值。

--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 master 服务(apiserver 创建/维护)将是 NodePort 类型,并使用此值作为端口。如果为零,则 Kubernetes master 服务将是 ClusterIP 类型。

--lease-reuse-duration-seconds int     默认: 60

每个 lease 可重用的秒数。较小的值可以避免大量对象重用同一个 lease。请注意,过小的值可能会导致存储层的性能问题。

--livez-grace-period duration

此选项表示 apiserver 完成其启动顺序并变为 live 所需的最长时间。从 apiserver 启动时间到此时间过去,/livez 将假设未完成的 post-start hook 将成功完成,因此返回 true。

--log-flush-frequency duration     默认: 5s

日志刷新之间的最大秒数

--log-text-info-buffer-size quantity

[Alpha] 在具有拆分输出流的文本格式中,信息消息可以缓冲一段时间以提高性能。零字节的默认值禁用缓冲。大小可以指定为字节数(512)、千字节倍数(1K)、兆字节倍数(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

此项与 --max-requests-inflight 一起用于确定服务器的总并发限制(必须为正数),如果 --enable-priority-and-fairness 为 true。否则,此标志限制正在进行的变异请求的最大数量,零值表示完全禁用此限制。

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

此项与 --max-mutating-requests-inflight 一起用于确定服务器的总并发限制(必须为正数),如果 --enable-priority-and-fairness 为 true。否则,此标志限制正在进行的非变异请求的最大数量,零值表示完全禁用此限制。

--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 <comma-separated 'key=value' pairs>

描述 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 功能门,并且该 IP 已设置,则当请求由于 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 服务器和调用 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 服务器和调用 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-uid-headers strings

要检查 UID 的请求头列表。建议使用 X-Remote-Uid。需要启用 RemoteRequestHeaderUID 功能。

--requestheader-username-headers strings

要检查用户名的请求头列表。X-Remote-User 是常见的。

--runtime-config <comma-separated 'key=value' pairs>

一组键=值对,用于启用或禁用内置 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 已弃用,将在未来版本中删除

--runtime-config-emulation-forward-compatible

如果为 true,则即使 --runtime-config 标志中启用的按组/版本标识的 API 是在仿真版本之后引入的,它们也将被安装。如果为 false,则服务器将因 --runtime-config 标志中启用的按组/版本标识的 API 在仿真版本之后引入而无法启动。只有当仿真版本低于二进制版本时,才能设置为 true。

--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,则 ServiceAccountIssuerDiscovery 功能将保持禁用状态,即使功能门设置为 true。强烈建议此值符合 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 服务器外部(自动检测或通过 external-hostname 覆盖)提供的 URL 提供给信赖方的,则此标志很有用。

--service-account-key-file strings

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

--service-account-lookup     默认: true

如果为 true,则在身份验证过程中验证服务帐户令牌是否存在于 etcd 中。

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

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

--service-account-signing-endpoint string

外部 JWT 签名器正在侦听的套接字路径。此标志与 --service-account-signing-key-file 和 --service-account-key-file 互斥。需要启用功能门 (ExternalServiceAccountTokenSigner)

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

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

--service-cluster-ip-range string

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

--service-node-port-range <a string in the form '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

此选项(如果设置)表示在服务器优雅关闭窗口期间,apiserver 将等待活动 watch 请求完成的最长宽限期。

--storage-backend string

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

--storage-initialization-timeout duration     默认: 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_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 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

包含 apiserver 跟踪配置的文件。

-v, --v int

用于日志级别详细程度的数字

--version version[=true]

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

--vmodule pattern=N,...

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

--watch-cache     默认: true

在 apiserver 中启用 watch 缓存

--watch-cache-sizes strings

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

本页面是自动生成的。

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

最后修改时间:2025 年 4 月 24 日上午 7:58 PST:v1.33 的组件参考 (05a3c54633)