您正在查看 Kubernetes 版本的文档: v1.19

Kubernetes v1.19 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。

kube-apiserver

简介

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

kube-apiserver [flags]

选项

--add-dir-header
如果为 true,则将文件目录添加到日志消息的标题中
--admission-control-config-file string
包含准入控制配置的文件。
--advertise-address ip
向集群成员通知 apiserver 消息的 IP 地址。 这个地址必须能够被集群中其他成员访问。 如果 IP 地址为空,将会使用 --bind-address, 如果未指定 --bind-address,将会使用主机的默认接口地址。
--allow-privileged
如果为 true, 将允许特权容器。[默认值=false]
--alsologtostderr
在向文件输出日志的同时,也将日志写到标准输出。
--anonymous-auth     默认值:true
启用到 API server 的安全端口的匿名请求。 未被其他认证方法拒绝的请求被当做匿名请求。 匿名请求的用户名为 system:anonymous, 用户组名为 system:unauthenticated。
--api-audiences stringSlice
API 的标识符。 服务帐户令牌验证者将验证针对 API 使用的令牌是否已绑定到这些受众中的至少一个。 如果配置了 --service-account-issuer 标志,但未配置此标志, 则此字段默认为包含发行者 URL 的单个元素列表。
--apiserver-count int     默认值:1
集群中运行的 apiserver 数量,必须为正数。 (在启用 --endpoint-reconciler-type=master-count 时使用。)
--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 float32
每秒的最大平均批处理数。 仅在批处理模式下使用。
--audit-log-format string     默认值:"json"
所保存的审计格式。 "legacy" 表示每行一个事件的文本格式。"json" 表示结构化的 JSON 格式。 已知格式为 legacy,json。
--audit-log-maxage int
根据文件名中编码的时间戳保留旧审计日志文件的最大天数。
--audit-log-maxbackup int
保留的旧审计日志文件的最大数量。
--audit-log-maxsize int
轮换之前,审计日志文件的最大大小(以兆字节为单位)。
--audit-log-mode string     默认值:"blocking"
发送审计事件的策略。 阻塞(blocking)表示发送事件应阻止服务器响应。 批处理导致后端异步缓冲和写入事件。 已知的模式是批处理(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 float32     默认值:10
每秒的最大平均批次数。 仅在批处理模式下使用。
--audit-webhook-config-file string
定义审计 webhook 配置的 kubeconfig 格式文件的路径。
--audit-webhook-initial-backoff duration     默认值:10s
重试第一个失败的请求之前要等待的时间。
--audit-webhook-mode string     默认值:"batch"
发送审计事件的策略。 阻止(Blocking)表示发送事件应阻止服务器响应。 批处理导致后端异步缓冲和写入事件。 已知的模式是批处理(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-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-mode stringSlice     默认值:[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 版本。
--azure-container-registry-config string
包含 Azure 容器仓库配置信息的文件的路径。
--bind-address ip     默认值:0.0.0.0
监听 --secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/web 客户端必须可以访问关联的接口。 如果为空白或未指定地址(0.0.0.0 或 ::),则将使用所有接口。
--cert-dir string     默认值:"/var/run/kubernetes"
TLS 证书所在的目录。 如果提供了 --tls-cert-file 和 --tls-private-key-file,则将忽略此标志。
--client-ca-file string
如果已设置,则使用与客户端证书的 CommonName 对应的标识对任何出示由 client-ca 文件中的授权机构之一签名的客户端证书的请求进行身份验证。
--cloud-config string
云厂商配置文件的路径。 空字符串表示无配置文件。
--cloud-provider string
云服务提供商。 空字符串表示没有云厂商。
--cloud-provider-gce-l7lb-src-cidrs cidrs     默认值:130.211.0.0/22,35.191.0.0/16
在 GCE 防火墙中打开 CIDR,以进行 L7 LB 流量代理和运行状况检查
--contention-profiling
如果启用了性能分析,则启用锁争用性能分析
--cors-allowed-origins stringSlice
CORS 允许的来源清单,以逗号分隔。 允许的来源可以是支持子域匹配的正则表达式。 如果此列表为空,则不会启用 CORS。
--default-not-ready-toleration-seconds int     默认值:300
标明 notReady:NoExecute 的 tolerationSeconds, 默认情况下将其添加到尚未具有此容忍度的每个 pod 中。
--default-unreachable-toleration-seconds int     默认值:300
标明 unreachable:NoExecute 的 tolerationSeconds, 默认情况下将其添加到尚未具有此容忍度的每个 pod 中。
--default-watch-cache-size int     默认值:100
默认监听(watch)缓存大小。 如果为零,则将为没有设置默认监视大小的资源禁用监视缓存。
--delete-collection-workers int     默认值:1
为 DeleteCollection 调用而产生的工作程序数。 这些用于加速名字空间清理。
--disable-admission-plugins stringSlice
尽管位于默认启用的插件列表中(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)仍须被禁用的插件。
取值为逗号分隔的准入插件列表:AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyEscalatingExec, DenyExecOnPrivileged, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodPreset, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook。
该标志中插件的顺序无关紧要。
--egress-selector-config-file string
带有 apiserver 出站选择器配置的文件。
--enable-admission-plugins stringSlice
除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的插件
取值为逗号分隔的准入插件列表:AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyEscalatingExec, DenyExecOnPrivileged, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodPreset, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, 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 且启用了 APIPriorityAndFairness 特性门控, 请使用增强的处理程序替换 max-in-flight 处理程序, 以便根据优先级和公平性完成排队和调度。
--encryption-provider-config string
包含加密提供程序配置信息的文件,用在 etcd 中所存储的 Secret 上。
--endpoint-reconciler-type string     默认值:"lease"
使用端点协调器(master-count, lease, none)
--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-keyfile string
用于保护 etcd 通信的 SSL 密钥文件。
--etcd-prefix string     默认值:"/registry"
要在 etcd 中所有资源路径之前添加的前缀。
--etcd-servers stringSlice
要连接的 etcd 服务器列表(scheme://ip:port),以逗号分隔。
--etcd-servers-overrides stringSlice
etcd 服务器针对每个资源的重载设置,以逗号分隔。 单个替代格式:组/资源#服务器(group/resource#servers),其中服务器是 URL,以分号分隔。
--event-ttl duration     默认值:1h0m0s
事件的保留时长。
--external-hostname string
为此主机生成外部化 UR L时要使用的主机名(例如 Swagger API 文档或 OpenID 发现)。
--feature-gates mapStringBool
一组 key=value 对,用来描述测试性/试验性功能的特性门控(Feature Gate)。可选项有:
APIListChunking=true|false (BETA - 默认值=true)
APIPriorityAndFairness=true|false (ALPHA - 默认值=false)
APIResponseCompression=true|false (BETA - 默认值=true)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AllowInsecureBackendProxy=true|false (BETA - 默认值=true)
AnyVolumeDataSource=true|false (ALPHA - 默认值=false)
AppArmor=true|false (BETA - 默认值=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false)
CPUManager=true|false (BETA - 默认值=true)
CRIContainerLogRotation=true|false (BETA - 默认值=true)
CSIInlineVolume=true|false (BETA - 默认值=true)
CSIMigration=true|false (BETA - 默认值=true)
CSIMigrationAWS=true|false (BETA - 默认值=false)
CSIMigrationAWSComplete=true|false (ALPHA - 默认值=false)
CSIMigrationAzureDisk=true|false (BETA - 默认值=false)
CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值=false)
CSIMigrationGCE=true|false (BETA - 默认值=false)
CSIMigrationGCEComplete=true|false (ALPHA - 默认值=false)
CSIMigrationOpenStack=true|false (BETA - 默认值=false)
CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值=false)
CSIMigrationvSphere=true|false (BETA - 默认值=false)
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false)
CSIStorageCapacity=true|false (ALPHA - 默认值=false)
CSIVolumeFSGroupPolicy=true|false (ALPHA - 默认值=false)
ConfigurableFSGroupPolicy=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
DefaultPodTopologySpread=true|false (ALPHA - 默认值=false)
DevicePlugins=true|false (BETA - 默认值=true)
DisableAcceleratorUsageMetrics=true|false (ALPHA - 默认值=false)
DynamicKubeletConfig=true|false (BETA - 默认值=true)
EndpointSlice=true|false (BETA - 默认值=true)
EndpointSliceProxying=true|false (BETA - 默认值=true)
EphemeralContainers=true|false (ALPHA - 默认值=false)
ExpandCSIVolumes=true|false (BETA - 默认值=true)
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)
ExpandPersistentVolumes=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
GenericEphemeralVolume=true|false (ALPHA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HugePageStorageMediumSize=true|false (BETA - 默认值=true)
HyperVContainer=true|false (ALPHA - 默认值=false)
IPv6DualStack=true|false (ALPHA - 默认值=false)
ImmutableEphemeralVolumes=true|false (BETA - 默认值=true)
KubeletPodResources=true|false (BETA - 默认值=true)
LegacyNodeRoleBehavior=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
NodeDisruptionExclusion=true|false (BETA - 默认值=true)
NonPreemptingPriority=true|false (BETA - 默认值=true)
PodDisruptionBudget=true|false (BETA - 默认值=true)
PodOverhead=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RemoveSelfLink=true|false (ALPHA - 默认值=false)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RunAsGroup=true|false (BETA - 默认值=true)
RuntimeClass=true|false (BETA - 默认值=true)
SCTPSupport=true|false (BETA - 默认值=true)
SelectorIndex=true|false (BETA - 默认值=true)
ServerSideApply=true|false (BETA - 默认值=true)
ServiceAccountIssuerDiscovery=true|false (ALPHA - 默认值=false)
ServiceAppProtocol=true|false (BETA - 默认值=true)
ServiceNodeExclusion=true|false (BETA - 默认值=true)
ServiceTopology=true|false (ALPHA - 默认值=false)
SetHostnameAsFQDN=true|false (ALPHA - 默认值=false)
StartupProbe=true|false (BETA - 默认值=true)
StorageVersionHash=true|false (BETA - 默认值=true)
SupportNodePidsLimit=true|false (BETA - 默认值=true)
SupportPodPidsLimit=true|false (BETA - 默认值=true)
Sysctls=true|false (BETA - 默认值=true)
TTLAfterFinished=true|false (ALPHA - 默认值=false)
TokenRequest=true|false (BETA - 默认值=true)
TokenRequestProjection=true|false (BETA - 默认值=true)
TopologyManager=true|false (BETA - 默认值=true)
ValidateProxyRedirects=true|false (BETA - 默认值=true)
VolumeSnapshotDataSource=true|false (BETA - 默认值=true)
WarningHeaders=true|false (BETA - 默认值=true)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (ALPHA - 默认值=false)
WindowsEndpointSliceProxying=true|false (ALPHA - 默认值=false)
--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 stringSlice     默认值:[Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP]
用于 kubelet 连接的首选 NodeAddressTypes 列表。
--kubelet-timeout duration     默认值:5s
kubelet 操作超时时间。
--kubernetes-service-node-port int
如果非零,那么 Kubernetes 主服务(由 apiserver 创建/维护)将是 NodePort 类型,使用它作为端口的值。 如果为零,则 Kubernetes 主服务将为 ClusterIP 类型。
--livez-grace-period duration
此选项代表 apiserver 完成启动序列并生效所需的最长时间。 从 apiserver 的启动时间到这段时间为止, /livez 将假定未完成的启动后钩子将成功完成,因此返回 true。
当日志机制执行到'文件 :N'时,生成堆栈跟踪
--log-dir string
如果为非空,则在此目录中写入日志文件
--log-file string
如果为非空,使用此日志文件
--log-file-max-size uint     默认值:1800
定义日志文件可以增长到的最大大小。单位为兆字节。 如果值为 0,则最大文件大小为无限制。
--log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数
--logging-format string     默认值:"text"
设置日志格式。允许的格式:"text","json"。
非默认格式不支持以下标志:--add_dir_header、--alsologtostderr、--log_backtrace_at、--log_dir、--log_file、--log_file_max_size、--logtostderr、-skip_headers、-skip_log_headers、-stderrthreshold、-vmodule和--log-flush-frequency。
当前非默认选择为 alpha,并且会随时更改而不会发出警告。
c --logtostderr     默认值:true
在标准错误而不是文件中输出日志记录
--master-service-namespace string     默认值:"default"
已废弃:应该从其中将 Kubernetes 主服务注入到 Pod 中的名字空间。
--max-connection-bytes-per-sec int
如果不为零,则将每个用户连接限制为该数(字节数/秒)。 当前仅适用于长时间运行的请求。
--max-mutating-requests-inflight int     默认值:200
在给定时间内进行中变更类型请求的最大个数。 当超过该值时,服务将拒绝所有请求。 零表示无限制。
--max-requests-inflight int     默认值:400
在给定时间内进行中非变更类型请求的最大数量。 当超过该值时,服务将拒绝所有请求。 零表示无限制。
--min-request-timeout int     默认值:1800
可选字段,表示处理程序在请求超时前,必须保持其处于打开状态的最小秒数。 当前只对监听(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 mapStringString
描述 ID 令牌中必需声明的键值对。 如果设置此值,则会验证 ID 令牌中存在与该声明匹配的值。 重复此标志以指定多个声明。
--oidc-signing-algs stringSlice     默认值:[RS256]
允许的 JOSE 非对称签名算法的逗号分隔列表。 若 JWT 所带的 "alg" 标头值不在列表中,则该 JWT 将被拒绝。 取值依据 RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 定义。
--oidc-username-claim string     默认值:"sub"
要用作用户名的 OpenID 声明。 请注意,除默认声明("sub")以外的其他声明不能保证是唯一且不可变的。 此标志是实验性的,请参阅身份认证文档以获取更多详细信息。
--oidc-username-prefix string
如果提供,则所有用户名都将以该值作为前缀。 如果未提供,则除 "email" 之外的用户名声明都会添加颁发者 URL 作为前缀,以避免冲突。 要略过添加前缀处理,请设置值为 "-"。
--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 stringSlice
此值为客户端证书通用名称(Common Name)的列表;表中所列的表项可以用来提供用户名, 方式是使用 --requestheader-username-headers 所指定的头部。 如果为空,能够通过 --requestheader-client-ca-file 中机构认证的客户端证书都是被允许的。
--requestheader-client-ca-file string
在信任请求头中以 --requestheader-username-headers 指示的用户名之前, 用于验证接入请求中客户端证书的根证书包。 警告:一般不要假定传入请求已被授权。
--requestheader-extra-headers-prefix stringSlice
用于查验请求头部的前缀列表。建议使用 X-Remote-Extra-。
--requestheader-group-headers stringSlice
用于查验用户组的请求头部列表。建议使用 X-Remote-Group。
--requestheader-username-headers stringSlice
用于查验用户名的请求头头列表。建议使用 X-Remote-User。
--runtime-config mapStringString
一组启用或禁用内置 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
在生成令牌时,启用投射服务帐户到期时间扩展, 这有助于从旧版令牌安全地过渡到绑定的服务帐户令牌功能。 如果启用此标志,则准入插件注入的令牌的过期时间将延长至 1 年,以防止过渡期间发生意外故障, 并忽略 service-account-max-token-expiration 的值。
--service-account-issuer {service-account-issuer}/.well-known/openid-configuration
服务帐号令牌颁发者的标识符。 颁发者将在已办法令牌的 "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 提供给依赖方的,则此标志很有用。 仅在启用 ServiceAccountIssuerDiscovery 特性门控的情况下有效。
--service-account-key-file stringArray
包含 PEM 编码的 x509 RSA 或 ECDSA 私钥或公钥的文件,用于验证 ServiceAccount 令牌。 指定的文件可以包含多个键,并且可以使用不同的文件多次指定标志。 如果未指定,则使用 --tls-private-key-file。 提供 --service-account-signing-key 时必须指定。
--service-account-lookup     默认值:true
如果为 true,则在身份认证时验证 etcd 中是否存在 ServiceAccount 令牌。
--service-account-max-token-expiration duration
服务帐户令牌发布者创建的令牌的最长有效期。 如果请求有效期大于此值的有效令牌请求,将使用此值的有效期颁发令牌。
--service-account-signing-key-file string
包含服务帐户令牌颁发者当前私钥的文件的路径。 颁发者将使用此私钥签署所颁发的 ID 令牌(需要启用 "TokenRequest" 特性门控)。
--service-cluster-ip-range string
CIDR 表示的 IP 范围用来为服务分配集群 IP。 此地址不得与指定给节点或 Pod 的任何 IP 范围重叠。
--service-node-port-range portRange     默认值:30000-32767
保留给具有 NodePort 可见性的服务的端口范围。 例如:"30000-32767"。范围的两端都包括在内。
--show-hidden-metrics-for-version string
你要显示隐藏指标的先前版本。仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor>,例如:"1.16"。 这种格式的目的是确保您有机会注意到下一个版本是否隐藏了其他指标, 而不是在此之后将它们从发行版中永久删除时感到惊讶。
--shutdown-delay-duration duration
延迟终止时间。在此期间,服务器将继续正常处理请求。 端点 /healthz 和 /livez 将返回成功,但是 /readyz 立即返回失败。 在此延迟过去之后,将开始正常终止。 这可用于允许负载平衡器停止向该服务器发送流量。
--skip-headers
如果为 true,日志消息中避免标题前缀
--skip-log-headers
如果为 true,则在打开日志文件时避免标题
--stderrthreshold severity     默认值:2
将达到或超过此阈值的日志写到标准错误输出
--storage-backend string
持久化存储后端。选项:"etcd3"(默认)。
--storage-media-type string     默认值:"application/vnd.kubernetes.protobuf"
用于在存储中存储对象的媒体类型。 某些资源或存储后端可能仅支持特定的媒体类型,并且将忽略此设置。
--tls-cert-file string
包含用于 HTTPS 的默认 x509 证书的文件。(CA 证书(如果有)在服务器证书之后并置)。 如果启用了 HTTPS 服务,并且未提供 --tls-cert-file 和 --tls-private-key-file, 为公共地址生成一个自签名证书和密钥,并将其保存到 --cert-dir 指定的目录中。
--tls-cipher-suites stringSlice
服务器的密码套件的列表,以逗号分隔。如果省略,将使用默认的 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_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_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_RC4_128_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_RC4_128_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、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 namedCertKey     默认值:[]
一对 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 服务的安全端口。
-v, --v Level
日志级别详细程度的数字
--version version[=true]
打印版本信息并退出
--vmodule moduleSpec
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录
--watch-cache     默认值:true
在 apiserver 中启用监视缓存
--watch-cache-sizes stringSlice
某些资源(pods、nodes 等)的监视缓存大小设置,以逗号分隔。 每个资源对应的设置格式:resource[.group]#size,其中 resource 为小写复数(无版本), 对于 apiVersion v1(旧版核心 API)的资源要省略 group, 对其它资源要给出 group,size 为一个数字。 启用 watch-cache 时,此功能生效。 某些资源(replicationcontrollers、endpoints、nodes、pods、services、apiservices.apiregistration.k8s.io) 具有通过启发式设置的系统默认值,其他资源默认为 default-watch-cache-size
最后修改 December 02, 2020 at 3:18 PM PST: sync command-line-tools reference of kube-apiserver (9bf6009431)