kube-apiserver 配置参数解读(kubernets version 1.12.0)
下面是kube-apiserver version 1.12.0的所有配置,其中高亮加粗的是我认为需要注意的Flag。
Flag | Comments |
--admission-control-config-file |
admission control的配置文件 |
--advertise-address |
向集群成员发布apiserver的IP地址,该地址必须能够被集群的成员访问。 如果为空,则使用 --bind-address,如果 --bind-address未指定, 那么僵使用主机的默认接口。 |
--allow-privileged | 如果为true,允许特权模式的容器。默认值:false |
--anonymous-auth |
允许匿名请求到API server的安全端口。未被其他身份验证方法拒绝的 请求将被视为匿名请求。匿名请求的system username:anonymous, system group name:unauthenticated。默认值:true |
--apiserver-count |
集群中运行的apiserver的数量,必须为一个正数。默认值:1 在使用时--endpoint-reconciler-type=master-count时启用的 |
--audit-log-batch-buffer-size |
批处理和写入之前的存储事件缓冲区的大小,只有批处理模式下使用。 默认值:10000 |
--audit-log-batch-max-size | 批次的最大尺寸。只有批处理模式下使用。默认值:1 |
--audit-log-batch-max-wait | 强制写入未达到最大值的batch的等待时间。只有批处理模式下使用 |
--audit-log-batch-throttle-burst |
在ThrottleQPS没有使用之前同时发送请求的最大数量。 只有批处理模式下使用。 |
--audit-log-batch-throttle-enable | 是否启用batching throttling,只有批处理模式下使用。 |
--audit-log-batch-throttle-qps | 每秒最大平均批次数,只有批处理模式下使用。 |
--audit-log-format |
保存审核的格式。"legacy" 表示每个事件为单行文本格式。 “json” 表示结构化的json格式。已知格式为legacy,json。默认值:json |
--audit-log-maxage | 根据文件名中的编码时间戳,保存审计日志文件的最大天数。 |
--audit-log-maxbackup | 保存审计日志文件的最大数量。 |
--audit-log-maxsize | 审计日志文件在流转之前的最大大小(以兆字节为单位)。 |
--audit-log-mode |
发送审计事件的策略。Blocking表示发送事件应阻塞服务器响应, Batch会在后端异步缓冲和写入事件。已知的模式为batch,blocking。 默认值:blocking |
--audit-log-path |
如果设置,所有到apiserver的请求都会记录到这个文件中。‘-’表示 写入标准输出。 |
--audit-log-truncate-enabled | 是否启用事件和batch截断功能。 |
--audit-log-truncate-max-batch-size |
发送给底层后端的批处理最大大小。实际序列化的大小可以大几百 字节。如果一个批次超过这个限度,将被分为几个小批次。 默认值:10485760 |
--audit-log-truncate-max-event-size |
发送给底层后端的审计事件的最大尺寸。如果单个事件的尺寸超过这个 值,第一个请求和回复会被删除,如果还没有减少到足够的大小, 事件将被丢弃。默认值:102400 |
--audit-log-version |
用于序列化写入日志审计事件的API组合版本。 默认值: "audit.k8s.io/v1beta1" |
--audit-policy-file | 定义审计策略配置文件的路径 |
--audit-webhook-batch-buffer-size |
批处理和写入之前的存储事件缓冲区的大小,只有批处理模式下使用。 默认值:10000 |
--audit-webhook-batch-max-size | 批次的最大尺寸。只有批处理模式下使用。默认值:400 |
--audit-webhook-batch-max-wait |
强制写入未达到最大值的batch的等待时间。只有批处理模式下使用 默认值:30s |
--audit-webhook-batch-throttle-burst |
在ThrottleQPS没有使用之前同时发送请求的最大数量。 只有批处理模式下使用。默认值:15 |
--audit-webhook-batch-throttle-enable | 是否启用batching throttling,只有批处理模式下使用。默认值:true |
--audit-webhook-batch-throttle-qps | 每秒最大平均批次数,只有批处理模式下使用。默认值:10 |
--audit-webhook-config-file | 定义审计webhook配置的一个kubeconfig格式的文件的路径 |
--audit-webhook-initial-backoff | 重试第一次失败请求的等待时间。默认值:10s |
--audit-webhook-mode |
发送审计事件的策略。Blocking表示发送事件应阻塞服务器响应, Batch会在后端异步缓冲和写入事件。已知的模式为batch,blocking。 默认值:blocking |
--audit-webhook-truncate-enabled | 是否启用事件和batch截断功能。 |
--audit-webhook-truncate-max-batch-size |
发送给底层后端的批处理最大大小。实际序列化的大小可以大几百 字节。如果一个批次超过这个限度,将被分为几个小批次。 默认值:10485760 |
--audit-webhook-truncate-max-event-size |
发送给底层后端的审计事件的最大尺寸。如果单个事件的尺寸超过这个 值,第一个请求和回复会被删除,如果还没有减少到足够的大小, 事件将被丢弃。默认值:102400 |
--audit-webhook-version |
用于序列化写入日志审计事件的API组合版本。 默认值: "audit.k8s.io/v1beta1" |
--authentication-token-webhook-cache-ttl | 从webhook token验证器缓存响应的持续时间,默认值:2m0s |
--authentication-token-webhook-config-file |
用于token身份验证的kubeconfig格式的webhook配置文件, API server将会查询远程服务器,以确定承载token的身份验证 |
--authorization-mode |
在安全端口上执行授权的有序的插件列表。默认值:AlwaysAllow 以逗号分隔的列表: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC,Node. |
--authorization-policy-file | csv格式的授权策略文件。与 --authorization-mode=ABAC一起使用 |
--authorization-webhook-cache-authorized-ttl | 缓存webhook授权器已授权响应的持续时间。默认值:5m0s |
--authorization-webhook-cache-unauthorized-ttl | 缓存webhook授权器未授权响应的持续时间。默认值:30s |
--authorization-webhook-config-file |
kubeconfig格式的webhook配置文件, 和--authorization-mode=Webhook一起使用。 API server将查询远程服务,以确定对API server安全端口的访问。 |
-azure-container-registry-config | 包含Azure容器注册表配置信息的文件的路径。 |
--basic-auth-file |
如果设置,该文件用于通过http基本身份验证向API服务器的 安全端口接收请求的文件。 |
--bind-address |
监听安全端口的IP地址。关联的接口必须能被集群的其他部分 以及CLI/web客户机访问。 |
--cert-dir |
TLS证书所在的目录。如果提供了--tls-cert-file 和 --tls-private-key-file,该参数会被忽略。 默认值:"/var/run/kubernetes" |
--client-ca-file |
如果设置,任何提交的客户ca文件中由某个权威机构签名的客户机 证书的请求都使用与客户机证书的公共名称相对应的身份进行身份 验证。 |
--cloud-config | Cloud provider配置文件的路径,如果为空表示没有配置文件。 |
--cloud-provider | 云服务提供商,控表示没有提供商。 |
--contention-profiling | 如果启用了profiling,则启用锁争用profiling |
--cors-allowed-origins |
以逗号分隔的允许CORS起源的列表。允许的起源可以是支持 子域匹配的正则表达式。如果该列表为空,表示启用CORS。 |
--default-watch-cache-size |
默认的watch缓存大小。如果是0,对于没有默认watch大小设置 的资源将不启用资源watch缓存。默认值:100 |
--delete-collection-workers |
为取消collection call而产生的worker数。用于加速namespace 清理。默认值:1 |
--deserialization-cache-size | 在内存中缓存反序列化json对象的数量。 |
--disable-admission-plugins | 应该禁用的admission插件,尽管它们在默认的启用插件列表。 |
--enable-admission-plugins | 除了默认启用的插件,还应该额外启动的admission插件 |
--enable-aggregator-routing | 打开aggregator路由请求到endpoints IP,而不是集群IP。 |
--enable-bootstrap-token-auth |
启用允许‘kube-system' namespace中的secrets类型的 'bootstrap.kubernetes.io/token'用于TLS引导身份验证。 |
--enable-garbage-collector |
启用通用的垃圾收集器。必须与kube-controller-manager 相应参数同步一致。默认值:true |
--enable-logs-handler | 如果true,安装一个logs handler给apiserver日志 |
--enable-swagger-ui | 在服务器上启用swagger ui |
--endpoint-reconciler-type | 使用endpoint协调器(master-count,lease(默认值),none) |
--etcd-cafile | 用于保护etcd通信的SSL证书权威文件。 |
--etcd-certfile | 用于保护etcd通信的SSL证书文件。 |
--etcd-compaction-interval |
压缩请求的时间。如果为0,来自apiserver的压缩请求被禁用了。 默认值:5m0s |
--etcd-count-metric-poll-period |
为每种类型的资源数量轮询etcd的频率。0表示禁用收集metric。 默认值:1m0s |
--etcd-keyfile | 用来保护etcd通信的SSL key文件 |
--etcd-prefix | etcd中所有资源路径的前缀。默认值:"/registry" |
--etcd-servers | 连接的etcd服务器列表(格式://ip:port),以逗号分隔 |
--etcd-servers-overrides | 以逗号分隔的,每个资源的etcd服务器覆盖。 |
--event-ttl | 保留时间的时间。默认值:1h0m0s |
--experimental-encryption-provider-config | 包含用于在etcd中存储secrets的加密提供程序的配置文件 |
--external-hostname | 为master生成外部url时使用的hostname |
--feature-gates | 用于描述alpha/实验特性的功能的一组键值对。 |
--http2-max-streams-per-connection |
服务器对HTTP/2连接中流的最大数量的限制, 0表示使用golang的默认值。 |
--kubelet-certificate-authority | 用于证书认证的证书文件路径 |
--kubelet-client-certificate | 用于TLS的客户端证书文件路径 |
--kubelet-client-key | 用于TLS的客户端私钥文件路径 |
--kubelet-https | kubelet通信使用https,默认值:true |
--kubelet-preferred-address-types |
为kubelet通信使用的首选NodeAddress 类型列表。默认值: [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP] |
--kubelet-read-only-port | 不建议配置,kubelet只读端口。默认值:10255 |
--kubelet-timeout |
kubelet操作的超时时间,默认值:5s |
--kubernetes-service-node-port |
如果不是0,则Kubernetes master服务将是NodePort类型。 使用它作为端口的值。如果为0,Kubernetes master服务将 是ClusterIP类型。 |
--log-flush-frequency | 日志刷新之间的最大间隔。默认值:5s |
--master-service-namespace | 不建议配置,应该注入pod的Kubernetes master服务的命名空间 |
--max-connection-bytes-per-sec |
如果不为0,每个用户连接限制为这个数值的字节/秒数。 目前只适用于长时间运行的请求。 |
-max-mutating-requests-inflight |
在给定时间内飞行中的最大变异请求数。当服务器超过此限制, 将会拒绝请求。零表示没有限制。默认值:200 |
--max-requests-inflight |
在给定时间内飞行中的最大非变异请求数。当服务器超过此限制, 将会拒绝请求。零表示没有限制。默认值:400 |
--min-request-timeout |
一个可选字段,指示处理程序在发出请求之前必须保持请求打开 打开的最短时间。目前,只有watch请求处理程序(它选择这个数 字以上的一个随机值作为连接超时)才会分配负载。默认值:1800 |
--oidc-ca-file |
如果设置,OpenID服务的证书将由oidc-ca-file中的一个权威 机构进行验证,否则将使用主机的根证书集。 |
--oidc-client-id |
OpenID连接客户的客户ID。如果oidc-issuer-url设置了, 则该参数也必须设置。 |
--oidc-groups-claim |
如果提供,用于指定用户组的自定义OpenID 连接声明的名称。 该声明值应该是字符串或者字符串数组。实验性参数 |
--oidc-groups-prefix |
如果提供,所有组都将一个该值作为前缀,以防止于其他身份 验证策略冲突。 |
--oidc-issuer-url |
OpenID发布者的URL,只接受HTTPS。如果设置,将用于验证 OIDC JSON Web Token。 |
-oidc-required-claim |
一组描述ID Token中所需的声明的键值对。如果设置,该声明 将被验证为ID Token中存在的匹配值。重复此参数以指定多个 |
--oidc-signing-algs |
以逗号分隔的允许JOSE非对称签名算法的列表。如果以”alg” 开头的JWTs不在此列表中,则会被拒纳。默认值:RS256 |
--oidc-username-claim |
用作user name的OpenID声明。注意,除了默认声明('sub')之外 的声明不能保证是唯一的和不可变的。默认值:’sub‘ |
--oidc-username-prefix |
如果提供,所有的username将以该值作为前缀,如果不提供, 除了’email‘之外,username声明以发布者URL作前缀,以 避免冲突。若要跳过任何前缀,请设置值为’-‘。 |
--profiling | 通过web接口host:port/debug/pprof/启用profiling,默认值 true |
--proxy-client-cert-file |
用于证明aggregator或kube-apiserver在请求期间发出呼叫的身份 的客户端证书。 |
--proxy-client-key-file |
用于证明聚合器或kube-apiserver的身份的客户端证书的私钥, 当它必须在请求期间调用时使用。包括将请求代理给用户 api-server和调用webhook admission插件 |
-request-timeout |
一个可选字段,指示处理程序必须在发出请求前保持打开状态 的时间。这是默认请求超时,但可能被其他参数覆盖,例如: 特殊类型请求的--min-request-timeou |
--requestheader-allowed-names |
客户端证书常用名称列表,允许在--requestheader-username- headers指定的标头中提供用户名,如果为空,则允许在 --requestheader-client-ca文件中通过当局验证的任何 客户端证书。 |
--requestheader-client-ca-file |
根证书绑定包用于在信任--requestheader-username-headers 指定的标头中的用户名前,在传入请求上验证客户证书。 |
-requestheader-extra-headers-prefix | 要检查的请求标头前缀列表 |
--requestheader-group-headers | 要检查组的请求标头列表 |
--requestheader-username-headers | 要检查用户名的请求标头列表 |
--runtime-config |
一组键值对,描述可能传递给apiserver的runtime配置。 <group>/<version> 键可以用于打开、关闭指定的api版本。
|
--secure-port |
为带有身份验证和授权的HTTPS提供服务的端口。 不能设置0关闭它。默认值:6443 |
--service-account-api-audiences |
API的标识符。Service account token验证器将验证针对 至少绑定这些受众之一的API使用的令牌 |
--service-account-issuer |
Service account token发行者的标识符。发布者将在“iss”声明 中断言该标识符。该值是一个字符串或者URL |
--service-account-key-file |
包含PEM编码的x509 RSA或ECDSA私有或者公共密钥的文件。 用于验证service account token。指定的文件可以包含多个值。 该参数可以被指定多个不同的文件。如果没有指定, --tls-private-key-file将被使用。如果提供了 --service-account-signing-key,则必须指定该参数。 |
--service-account-lookup |
如果为true,作为身份验证的一部分,验证service account token是否存在于etcd中。默认值:true |
--service-account-max-token-expiration | 由service account token签发人创建的token的最大有效期 |
--service-account-signing-key-file |
指向包含service account token签发方当前私钥文件的路径。 签发方将用这个私钥签署已发行的ID token。 需要设置'TokenRequest' feature gate |
--service-cluster-ip-range |
CIDR IP范围,用于分配service 集群IP。不能与分配给节点pod 的任何IP范围重叠。默认值:10.0.0.0/24 |
--service-node-port-range |
为NodePort可视性服务保留的端口范围。默认值: 30000-32767 |
--storage-backend | 持久性存储后端。可选值:'etcd3' (默认), 'etcd2'. |
--storage-media-type |
用于在存储器中存储对象的媒体类型。部分资源或存储后端 可能只支持特定的媒体类型,并将忽略该设置。默认值: "application/vnd.kubernetes.protobuf" |
--target-ram-mb | apiserver的内存限制(单位为MB) |
--tls-cert-file |
包含HTTPS的默认x509证书的文件。如果启用HTTPS服务, 切没有提供--tls-cert-file和--tls-private-key-file, 则为公共地址生成自签名证书和密钥,并保存到--cert-dir 指定的目录中。 |
--tls-cipher-suites |
以逗号分隔的服务器密码套件列表。如果省略,将使用默认的 Go密码套件。 |
--tls-min-version |
支持的最低的TLS版本。可选值:VersionTLS10, VersionTLS11, VersionTLS12 |
--tls-private-key-file | 包含和--tls-cert-file配对的默认x509私钥的文件 |
--tls-sni-cert-key |
一对x509证书和私钥文件路径,可选地以一列完全限定域名的 域模式作为后缀,可能带有前缀通配符段。默认值:[] |
--token-auth-file |
如果设置,将使用该文件通过token身份验证来保护API服务器的 安全端口。 |
--watch-cache | 在apiserver中启用watch缓存 |
--watch-cache-sizes | 每种资源的watch缓存尺寸列表。 |