kube-apiserver 配置参数解读(kubernets version 1.12.0)

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缓存尺寸列表。

 

上一篇:007.kubernets的headless service配置和ingress的简单配置


下一篇:004.kubernets对于pod的简单管理