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

下面是kube-apiserver version 1.12.0的所有配置,其中高亮加粗的是我认为需要注意的Flag。

FlagComments
--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-filecsv格式的授权策略文件。与 --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-configCloud 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-prefixetcd中所有资源路径的前缀。默认值:"/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-httpskubelet通信使用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-mbapiserver的内存限制(单位为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缓存尺寸列表。

 

转载于:https://my.oschina.net/u/3797264/blog/2250066

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在启动 kube-apiserver.service 时遇到 "Unit kube-apiserver.service not found" 错误,可能是因为服务单元文件未正确安装或未正确配置。 您可以尝试以下步骤来解决该问题: 1. 确认 Kubernetes 的二进制文件已正确安装并可用。您可以通过运行 `which kube-apiserver` 命令来检查 kube-apiserver 的安装路径。如果命令返回路径,则说明二进制文件已正确安装。 2. 检查 Kubernetes 的服务单元文件是否存在。服务单元文件通常位于 `/etc/systemd/system/` 目录下,以 `.service` 结尾。确保存在名为 `kube-apiserver.service` 的服务单元文件。如果文件不存在,您可能需要重新安装 Kubernetes 或手动创建服务单元文件。 3. 如果服务单元文件存在,请确保文件的权限设置正确。运行以下命令来更正权限: ``` sudo chmod 644 /etc/systemd/system/kube-apiserver.service ``` 4. 如果服务单元文件存在但配置有误,您可以尝试重新配置该文件。打开 `/etc/systemd/system/kube-apiserver.service` 文件,并确保其中的配置正确无误。您可以参考 Kubernetes 官方文档或其他可靠来源获取正确的配置信息。 5. 在进行任何更改后,运行以下命令重新加载 systemd 配置并启动 kube-apiserver 服务: ``` sudo systemctl daemon-reload sudo systemctl start kube-apiserver.service ``` 如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值