kube-apiserver命令行参数详解

来自《kubernetes源码剖析》

Generic flags 通用参数

--advertise-address

ip

用于设置相机群众其他组件发布api-server的ip地址,该地址必须能够被集群中的其他组件访问。如果该参数为空则使用--bind-address。如果未指定--bind-address则使用主机的默认端口
--cloud-provider-gcc-lb-src-cidrscidrs用于设置在Gce防火墙中打开cidr(无类别域间路由)以进行lb流量代理和运行状态检查默认为(130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16)
--cors-allowed-originsstrings用于设置http跨域资源共享CORs,该参数指定CORS允许的来源列表,以逗号分隔,如果此列表为空则不会启用
--default-not-ready-toleration-secondsint用于设置对notready状态的容忍时间默认300
--default-unreachable-toleration-secondsint用于设置对unrecaable状态的容忍时间默认300
--external-hostnamestring

用于为master生成对外开放的url地址,例如swagger api文档的url地址

--feature-gatesmap[string]bool用于设置一组alpha阶段的特性功能,通过键值对对外描述,针对每个组件使用--feature-gates参数来开启或者关闭一个特性,当前k8s版本目前支持大约68个feature-gates特性 https://blog.csdn.net/weixin_45413603/article/details/107984385
--master-service-namespcaestring该参数已启用,用于为master服务的ns注入pod资源默认default
--max-mutating-requests-inflightint用于设置给定时间内的最大mutaing请求书,当请求书超过此值,服务器会拒绝客户端请求,为0的时候表示无限制默认200
--max-requests-infightint用于设置给定时间内最大non-mutaing请求书。当请求数超过此值时,服务器会拒绝客户请求,为0的时候无限制默认400
--min-request-timeoutint该参数可选,用于设置最短请求超时时间,及打开链接最短时间默认1800
--request-timeoutduration该参数可选,气质可能会被其他参数支付该例如--min-request-timeout 默认1分钟
--target-ram-mbint

用于设置kube-apiserver的内存限制MB 可配置缓存大小

 

Etcd flages etcd存储相关参数
--default-watch-cache-sizeint用于设置默认的watch缓存大小,如果为0对于未设置默认的watch缓存大小的资源将禁用watch缓存(默认为100)
--delete-collection-workersint用于设置执行DeleteCollection(删除多个资源对象)时的并发数量 默认为1
--enable-garbage-collectorbool用于启用/禁用垃圾回收器,该参数必须与kube-controller-manager相应的参数值相同(默认为true)
--encryption-provider-configstring用于启用/禁用加密特性,配置etcd中村粗secrets的加密程序的文件
--etcd-cafilestring用于指定etcd ca文件,保护etcd通信中的ssl证书颁发机构文件
--etcd-certfilestring用于指定etcd cert文件,保护etcd通信中的ssl认证文件
--etcd-compaction-intervalduration用于设置压缩请求request的时间间隔,如果参数为0,则禁用kube-apiserver的压缩请求
--etcd-count-metric-poll-periodduration用于设置每种资源类型的metric指标采集时间,0表示禁用收集metric 默认为1分钟

--etcd-keyfile

string用于指定etcd key文件,保护etcd通信中的ssl密钥文件
--etcd-prefix string用于设置村粗在etcd中的所有资源路径的前缀,默认为/registry
--etcd-serversstring用于设置etcd服务器集群列表(格式为scheme://ip:port)多个服务器逗号隔开
--etcd-servers-overridesstrings扩大kubernetes集群,可将资源配置到单独的etcd集群,可以将events资源配置到单独的etcd集群例如--etcd-servers-overrides=“/events#http://etcdA:2379,http://etcdB:2379” 多个资源逗号隔开
--storage-backendstring用于设置kube-apiserver后端持久化存储默认为etcdv3
--storage-media-typestring用于设置etcd村粗kube-apiserver资源对象的媒体类型 默认为/application/vnd.kubernetes.protobuf
--watch-cachebool用于设置kube-apiserver中启用/禁用watch缓存 默认为true
--watch-cache-sizestrings用于设置每个资源的watch缓存大小列表,个资源的watch缓存大小以逗号隔开,格式为resource[.group]#size。这个参数在启用--watch-cache参数后生效,某些资源的watch缓存大小拥有系统默认值,其他资源默认使用--default-wathc-cache-size参数

 

Secure serving flags https服务相关参数
--bind-addressip用于设置https安全端口的ip地址,该地址可以被集群中的其他组件或cli/web访问,如果该参数为空,则以ipv4接口均为0.0.0.0,ipv6为:: 默认值为0.0.0.0
--cert-dirstring用于设置tls证书所在的目录。如果提供了--tls-cert-file参数和--tls-private-key-file参数,则可以忽略该参数 默认值为/var/run/kubernetes
--http2-max-streams-pre-connectionint用于设置kube-apiserver为正处于http/2连接中的客户端提供的最大流量限制
--secure-portint用于设置http安全端口,即使用身份验证和授权为https提供服务的端口 默认为6443
--tls-cert-file string用于设置https的x509证书文件所在的路径
--tls-cipher-suitesstrings用于提供kube-apiserver所使用的密码套件列表,多个密码套件以逗号分隔,如果未制定该参数,则使用默认的go语言密码套件,该参数支持的套件有https://blog.csdn.net/weixin_45413603/article/details/107929454
--tls-min-versionstring用于设置kube-apiserver支持的最低tls版本,可供选择的值有 VersionTLS10   VersionTLS11  VersionTLS12
--tls-private-key-filestring

用于设置--tls-cert-file参数匹配的默认x509私钥

--tls-sni-cert-keynamedCertKey用于设置x509的证书和密钥文件路径,对于多个密钥证书对,可以多次使用--tls-sni-cert-key参数。例如“example.cert,example.key” 默认为[]


 

Insecure serving flags http服务相关参数
--addressip该参数已被弃用 可参阅--bind-address
--insecure-bin-addressip该参数已被弃用 
--insecure-portint该参数已被弃用 
--portint该参数已被弃用 可参阅---secure-port


 

Auditing flags 审计相关参数
--audit-dynamic-configurationbool用于启用/禁用动态审计配置,此功能依赖--feature-gates参数的DynamicAuditing特性
--audit-log-batch-buffer-sizeint用于设置在批处理写入之前存储事件的缓冲区大小,禁用与批处理模式(默认值为1000)
--audit-log-batch-max-sizeint用于设置批处理最大的大小,禁用与批处理模式(默认值为1)
--audit-log-batch-max-waitduration用于强制写入为达到最大大小的批处理之前等待的时间,仅用于批处理模式
--audit-log-batch-throttle-burstint如果之前未使用ThrottleQPS则该参数用于设置同一时刻发送的最大请求数,仅用于批处理模式

--audit-log-batch-throttle-enalbe

bool用于设置是否启用batching throttling流量限制仅用于批处理模式
--audit-log-batch-throttle-qpsfloat32用于设置每秒最大平均批处理次数,禁用与批处理模式
--audit-log-formatstring用于审计(audit)日志的格式,若该参数为legacy 表示每个事件为但文本格式,若该参数为json,表示结构化的json格式 默认为json
--audit-log-maxageint用于设置根据文件名中编码的时间戳,保留旧的审计日志文件最大天数
--audit-log-maxbackupint用于设置要保留的审计日志文件的最大数量
--audit-log-maxsizeint用于设置审计日志文件的最大大小mb
--audit-log-modestring用于设置发送审计日志事件的策略(模式),若该参数为blocking,表示发送审计事件应阻塞服务器响应,若该参数为batch,表示后段缓冲并异步写入事件,已知策略(模式)有batch,blocking,blocking-strict 默认为blocking
--audit-log-pathstring用于设置写入审计日志事件的日志文件路径,如果制定该参数,则所有进入kube-apiserver的请求都将记录在此文件中,如果不指定,则会禁用日志后端,“-”表示标准输出

--audit-log-truncat-enable

bool用于设置是否启用event事件和batch截断功能
--audit-log-truncat-max-batch-sizeint用于设置发送到底层后端的批处理的最大大小。世纪的序列化大小可以大于几百字节,如果批处理大小超过该数值,则会将其拆分为多个娇小的批次(默认为10485760)
--audit-log-truncat-max-event-sizeint用于设置发送到底层后端的审计事件的最大大小,如果审计时间的大小超过这个值,则会删除第一个请求和响应,如果删除后还没有达到足够的大小,则会丢弃事件 默认为102400
--audit-log-versionstring

用于设置序列化写入审计日志时间的资源组和资源版本 默认为audit.k8s.io/v1

--audit-policy-filestring用于设置审计策略(模式)配置的文件路径
--audit-webhook-batch-buffer-sizeint用于设置批处理写入之前要缓存的事件数,如果传入的事件的速率溢出缓存区,则会丢失事件 默认为10000
--audit-webhook-batch-max-sizeint用于设置批处理的最大事件数 默认为400
--audit-webhook-batch-max-waitduration用于设置强制批处理队列中的事件之前等待的最长时间 默认为30s
--audit-webhook-batch-throttle-burstint如果之前未使用throttleQPS 则该参数用于设置同一时间发送的最大请求书,仅用与批处理模式 默认为15
--audit-webhook-batch-throttle-enablebool用于是否启用批量限制 (Batching Throttling)仅用与批处理模式  默认为true
--audit-webhook-batch-throttle-qpsfloat32用于设置每秒最大平均批处理次数 仅用与批处理模式 默认为10
--audit-webhook-config-filestring用于设置审计webhook配置的kubeconfig格式文件的路径
--audit-webhook-initial-backoffduration用于设置第一次请求失败后充实请求等待时间  默认10s
--audit-webhook-modestring用于设置发送审计日志事件的策略(模式),若该参数为blocking,表示发送审计事件应阻塞服务器响应,若该参数为batch,表示后段缓冲并异步写入事件,已知策略(模式)有batch,blocking,blocking-strict 默认为blocking
--audit-webhook-truncate-enabledbool用于设置是否启用事件和批处理做截断功能
--audit-webhook-truncate-max-batch-sizeint用于设置发送到后端的批处理的最大大小,如果批处理大小超过该参数值,则将其拆分为几个娇小的批次 默认为10485760
--audit-webhook-truncate-max-event-sizeint用于设置发送到底层后端的审计日志事件的最大大小,如果事件的大小大于该参数之,则会删除第一个请求和响应,如果删除后还没有达到足够的大小,则会丢弃  默认为102400
--audit-webhook-versionstring用于设置序列化写入webhook的审计日志事件资源组和资源组版本  默认为audit.k8s.io
Features flags新特性相关参数
--contention-profilingbool如果启用了profiling性能分析功能,则启用所征用性分析
--profilingbool用于启用/禁用性能分析,可以通过web页面进行访问,访问方式为host:port/debug/pprof(默认为true)

 

Authentication flags认证相关参数
--contention-profilingbool如果启用了profiling性能分析功能,则启用锁争用性分析
--profilingbool如果启用/禁用 性能分析,可以通过web页面进行访问,访问方式为host:port/debug/pprof
--anonymous-authbool用于启用/禁用匿名(Anonymous)认证,允许匿名球球到kube-apiserver的安全端口,未被其他身份验证方法拒绝的请求被视为匿名请求,匿名请求用户名为system:anonymous 组名为system:unauthenicated 默认为true
--api-audiencesstrings用于设置api的表示符列表
--authentication-token-webhook-cache-ttlduration用于设置缓存认证时间 默认值2分钟
--authentication-token-webhook-config-filestring用于设置webhook配置文件,该文件描述了如何访问远程webhook服务
--basic-auth-filestring用于启用basicauth认证
--client-ca-filestring用于启用clientca认证
--enable-bootstrap-token-authbool用于启用bootstrap token认证
--oidc-ca-filestring用于设置签署身份提供商的web证书的ca证书路径,默认为主机的根ca(即/etc/kubernetes/ssl/kc-ca。pem)
--oidc-client-idstring用于办法所有token的客户端id
--oidc-groups-claimstring用于设置jwy(json web token)生命的用户组名称
--oidc-groups-prefixstring用于设置组名前缀 所有组都将以此值为前缀,以避免与其他身份验证策略冲突
--oidc-issuer-urlstring用于设置auth server服务的url 例如使用goole accounts服务 其url为https://accounts.google.com
--oidc-required-claimmapStringString设置键值对,用于描述id token 中必要的生命,如果设置更改参数值 则验证该生命是否匹配值存在于id token中 重复指定该参数可设置多个声明
--oidc-signing-algsstrings用于设置jose非堆成签名算法列表,算法以逗号分隔,如果alg开头的jwts不在此列表中,则会被拒绝(默认值为[RS256])
--oidc-username-claimstring用于设置jwt(json web token)生命的用户名称
--oidc-usernmae-prefixstring用于设置用户名成前缀,所有用户名称都以该值为前缀,以避免与其他身份验证策略冲突,如果要跳过任何前缀,可以设置该参数为-

--requestheader-allowed-names

strings用于设置通用名称(Common Name)
--requestheader-client-ca-filestring用于设置有效的客户端CA证书
--requestheader-extra-headers-prefixstrings用于设置额外的列表,建议使用X-Remote-Extra-
--requestheader-group-headersstrings用于设置组列表,建议使用X-Remote-Group
--requestheader-username-headersstrings用于设置用户名列表,建议使用X-Remote-User
--service-account-issuerstringservice account token发布者的表示服,发布者在发布的token的iss字段中声明该标识符,该参数值是字符串或url
--service-acccount-key-filestringArray用于设置签名承载token的pem编码密钥的文件,用于验证service account token 如果未指定,则用kube-apiserver的tls私钥
--service-account-lookupbool用于验证service account token 是否存在于etcd中 默认为true
--service-account-max-token-expirationduration用于设置service account token 发布者创建的token 最长有效期
--token-auth-filestring用于启用token auth认证


 

Authorization flags 授权相关参数
--authorization-modestrings用于设置在安全端口上启用授权其,以逗号分割列表AlwaysAllow,AlaysDeny,ABAC,Webhook,RBAC,Node(默认值[AlwaysAllow])
--authorization-policy-filestring用于设置基于ABAC模式的策略文件,该文件用json格式进行描述,每一行都是一个策略对象
--authorization-webhook-cache-auth-orized-ttlduration用于设置从Webhook授权服务中缓存authorized(已授权)响应的缓存时间(默认值为5分钟)
--authorization-webhook-cache-mauhorized-ttlduration用于设置从webhook授权服务中缓存unauthorized(未授权)响应的缓存时间(默认值30s)
--authorization-webhook-config-filestring用于设置使用kubeconfig格式的webhook配置文件,该参数与--authorization-mod=webhook参数一起使用
Cloud provider flags 云服务提供商相关参数
--cloud-configstring用于设置云服务提供商的配置文件路径,如果为空,则没有配置文件
--cloud-providerstring用于设置云服务提供商,如果该参数是空字符串,表示无云服务提供商


 

Api enablement flags 控制开启禁用特定的资源版本或资源参数
--cloud-configmap[string]string

用于设置传递给kube-apiserver的描述运行时的配置的键值对结合

apis/<groutVersion>键可以被用来开启/禁用特定的api资源版本

apis/<groupVersion>/<resource>建可以被用来开启/禁用特定的资源

api/all和api/legacy键可以分别被用来控制所有的资源版本

Admission flags 准入控制其相关参数
--admission-controlstrings该参数已弃用,启用于指定准入控制器顺序列表默认值为alwaysadmit
--admission-control-config-filestring用于指定准入控制器的配置文件
--disable-admission-pluginsstrings用于指定禁用的准入控制器列表
--enable-admission-pluginsstrings用于指定启用的准入控制器列表
Misc flags其他参数
--allow-privilegedbool如果该参数为true,则允许特权容器(privileged container)默认为false
--apiserver-count

int

用于设置集群中运行的kube-apiserver组建数量,该参数必须为证书,当使用--endpoint-reconciler-type参数时开启默认为1 
--enable-aggregator-routingbool用于设置启用aggregatorserver聚合器,可以将指定服务的路由请求到该服务
--enable-logs-handlerbool用于设置kube-apiserver的日志功能,安装一个/logs处理器 默认为true
--endpoint-reconciler-typestring用于设置kube-APIserver组建高可用功能,默认使用endpoint资源锁机制进行领导选举 默认为lease
--enent-ttlduration用于设置kubernetes集群时间保留时间 默认为1小时
--kubelet-certificate-authoritystring用于设置证书authority的文件路径
--kubelet-client-certificatestring用于设置tls的客户端文件证书文件路径

--kubelet-client-key

string用于设置tls的客户端证书密钥文件路径

--kubelet-https

 用于为kubelet启用https 默认为true
--kubelet-preferred-address-typesstrings用于设置kubelet连接首选node address type列表默认为[Hostname,InternalDNS,InternalIP,ExtrnalDNS,ExternalIP]
--kubelet-read-only-portuint该参数已弃用,用于设置kubelet的端口 默认为10255
--kubelet-timeoutduration用于设置kubelet操作超时时间 默认为5s
--kubernetes-service-node-portint如果该参数不为0,kubernetes master服务将会使用node port类型,并将更该参数值作为端口号,如果为0,kubernetes master服务将会使用cluster ip类型
--max-connection-bytes-per-secint用于设置每个用户连接的限速值(bytes/sec)该参数只应用于长时间运行的请求
--proxy-client-cert-file

string

用于设置调用外部程序的tls验证的证书文件路径,例如webhook准入控制器
--proxy-client-key-filestring用于设置调用外部程序的tls验证的私钥文件路径,例如webhook准入控制器
--service-account-string-key-filestring用于设置service account token签发方当前私钥文件的路径
--service-cluster-ip-rangeipNet用于设置CIDR表示的ip反问,服务的clusterip将从中分配,该数值一定不要与分配给node和pod的ip反问重叠,默认为10.0.0.0/24
--service-node-port-rangeportRange用于设置nodeport服务保留的端口号范围(默认为30000-32767)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自万古的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值