kube-apiserver命令行参数详解

来自《kubernetes源码剖析》

Generic flags 通用参数

--advertise-address

ip

用于设置相机群众其他组件发布api-server的ip地址,该地址必须能够被集群中的其他组件访问。如果该参数为空则使用--bind-address。如果未指定--bind-address则使用主机的默认端口
--cloud-provider-gcc-lb-src-cidrs cidrs 用于设置在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-origins strings 用于设置http跨域资源共享CORs,该参数指定CORS允许的来源列表,以逗号分隔,如果此列表为空则不会启用
--default-not-ready-toleration-seconds int 用于设置对notready状态的容忍时间默认300
--default-unreachable-toleration-seconds int 用于设置对unrecaable状态的容忍时间默认300
--external-hostname string

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

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

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

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

--etcd-keyfile

string 用于指定etcd key文件,保护etcd通信中的ssl密钥文件
--etcd-prefix  string 用于设置村粗在etcd中的所有资源路径的前缀,默认为/registry
--etcd-servers string 用于设置etcd服务器集群列表(格式为scheme://ip:port)多个服务器逗号隔开
--etcd-servers-overrides strings 扩大kubernetes集群,可将资源配置到单独的etcd集群,可以将events资源配置到单独的etcd集群例如--etcd-servers-overrides=“/events#http://etcdA:2379,http://etcdB:2379” 多个资源逗号隔开
--storage-backend string 用于设置kube-apiserver后端持久化存储默认为etcdv3
--storage-media-type string 用于设置etcd村粗kube-apiserver资源对象的媒体类型 默认为/application/vnd.kubernetes.protobuf
--watch-cache bool 用于设置kube-apiserver中启用/禁用watch缓存 默认为true
--watch-cache-size strings 用于设置每个资源的watch缓存大小列表,个资源的watch缓存大小以逗号隔开,格式为resource[.group]#size。这个参数在启用--watch-cache参数后生效,某些资源的watch缓存大小拥有系统默认值,其他资源默认使用--default-wathc-cache-size参数
Secure serving flags https服务相关参数
--bind-address ip 用于设置https安全端口的ip地址,该地址可以被集群中的其他组件或cli/web访问,如果该参数为空,则以ipv4接口均为0.0.0.0,ipv6为:: 默认值为0.0.0.0
--cert-dir string 用于设置tls证书所在的目录。如果提供了--tls-cert-file参数和--tls-private-key-file参数,则可以忽略该参数 默认值为/var/run/kubernetes
--http2-max-streams-pre-connection int 用于设置kube-apiserver为正处于http/2连接中的客户端提供的最大流量限制
--secure-port int 用于设置http安全端口,即使用身份验证和授权为https提供服务的端口 默认为6443
--tls-cert-file  string 用于设置https的x509证书文件所在的路径
--tls-cipher-suites strings 用于提供kube-apiserver所使用的密码套件列表,多个密码套件以逗号分隔,如果未制定该参数,则使用默认的go语言密码套件,该参数支持的套件有。。。。这里实在太多了
--tls-min-version string 用于设置kube-apiserver支持的最低tls版本,可供选择的值有 VersionTLS10   VersionTLS11  VersionTLS12
--tls-private-key-file string

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

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


 

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


 

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

--audit-log-batch-throttle-enalbe

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

--audit-log-truncat-enable

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

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

--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 如果之前未使用throttleQPS 则该参数用于设置同一时间发送的最大请求书,仅用与批处理模式 默认为15
--audit-webhook-batch-throttle-enable bool 用于是否启用批量限制 (Batching Throttling)仅用与批处理模式  默认为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 用于设置发送审计日志事件的策略(模式),若该参数为blocking,表示发送审计事件应阻塞服务器响应,若该参数为batch,表示后段缓冲并异步写入事件,已知策略(模式)有batch,blocking,blocking-strict 默认为blocking
--audit-webhook-truncate-enabled bool 用于设置是否启用事件和批处理做截断功能
--audit-webhook-truncate-max-batch-size int 用于设置发送到后端的批处理的最大大小,如果批处理大小超过该参数值,则将其拆分为几个娇小的批次 默认为10485760
--audit-webhook-truncate-max-event-size int 用于设置发送到底层后端的审计日志事件的最大大小,如果事件的大小大于该参数之,则会删除第一个请求和响应,如果删除后还没有达到足够的大小,则会丢弃  默认为102400
--audit-webhook-version string 用于设置序列化写入webhook的审计日志事件资源组和资源组版本  默认为audit.k8s.io
Features flags新特性相关参数
--contention-profiling bool 如果启用了profiling性能分析功能,则启用所征用性分析
--profiling bool 用于启用/禁用性能分析,可以通过web页面进行访问,访问方式为host:port/debug/pprof(默认为true)
Authentication flags认证相关参数
--contention-profiling bool 如果启用了profiling性能分析功能,则启用锁争用性分析
--profiling bool 如果启用/禁用 性能分析,可以通过web页面进行访问,访问方式为host:port/debug/pprof
--anonymous-auth bool 用于启用/禁用匿名(Anonymous)认证,允许匿名球球到kube-apiserver的安全端口,未被其他身份验证方法拒绝的请求被视为匿名请求,匿名请求用户名为system:anonymous 组名为system:unauthenicated 默认为true
--api-audiences strings 用于设置api的表示符列表
--authentication-token-webhook-cache-ttl duration 用于设置缓存认证时间 默认值2分钟
--authentication-token-webhook-config-file string 用于设置webhook配置文件,该文件描述了如何访问远程webhook服务
--basic-auth-file string 用于启用basicauth认证
--client-ca-file string 用于启用clientca认证
--enable-bootstrap-token-auth bool 用于启用bootstrap token认证
--oidc-ca-file string 用于设置签署身份提供商的web证书的ca证书路径,默认为主机的根ca(即/etc/kubernetes/ssl/kc-ca。pem)
--oidc-client-id string 用于办法所有token的客户端id
--oidc-groups-claim string 用于设置jwy(json web token)生命的用户组名称
--oidc-groups-prefix string 用于设置组名前缀 所有组都将以此值为前缀,以避免与其他身份验证策略冲突
--oidc-issuer-url string 用于设置auth server服务的url 例如使用goole accounts服务 其url为https://accounts.google.com
--oidc-required-claim mapStringString 设置键值对,用于描述id token 中必要的生命,如果设置更改参数值 则验证该生命是否匹配值存在于id token中 重复指定该参数可设置多个声明
--oidc-signing-algs strings 用于设置jose非堆成签名算法列表,算法以逗号分隔,如果alg开头的jwts不在此列表中,则会被拒绝(默认值为[RS256])
--oidc-username-claim string 用于设置jwt(json web token)生命的用户名称
--oidc-usernmae-prefix string 用于设置用户名成前缀,所有用户名称都以该值为前缀,以避免与其他身份验证策略冲突,如果要跳过任何前缀,可以设置该参数为-

--requestheader-allowed-names

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


 

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


 

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

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

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

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

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

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

int

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

--kubelet-client-key

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

--kubelet-https

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

string

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

猜你喜欢

转载自blog.csdn.net/weixin_45413603/article/details/107449676
今日推荐