官方文档地址:https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-controller-manager/
共120多个配置项
如果启用了概要分析,则启用锁争用概要分析
Enable profiling via web interface host:port/debug/pprof/
【Cloud】云服务商提供的 Pod 的地址池。
CIDR 类型,默认 RangeAllocator
【Cloud】云提供程序配置文件的路径。 空字符串意味着无配置文件。
【Cloud】云服务商,为空则意味着没有
Pod 的地址池,需要 --allocate-node-cidrs 为 true。
集群实例名称的前缀,默认为 kubernetes
【Cloud】是否应在云提供商上配置由allocate-node-cidrs分配的CIDR。默认为 true
启动控制器管理器之间的间隔。
开启控制器的列表,* 意味着启用所有默认控制器,“foo” 表示开启名字为 foo 的控制器,“-foo” 表示关闭名字为 foo 的控制器。
所有默认开启的控制器,共36个:
attachdetach, bootstrapsigner, cloud-node-lifecycle, clusterrole-aggregation, cronjob, csrapproving, csrcleaner, csrsigning, daemonset, deployment, disruption, endpoint, endpointslice, garbagecollector, horizontalpodautoscaling, job, namespace, nodeipam, nodelifecycle, persistentvolume-binder, persistentvolume-expander, podgc, pv-protection, pvc-protection, replicaset, replicationcontroller, resourcequota, root-ca-cert-publisher, route, service, serviceaccount, serviceaccount-token, statefulset, tokencleaner, ttl, ttl-after-finished。
默认关闭的控制器:
bootstrapsigner, tokencleaner
默认值为 [*]
【Cloud】将云提供商设置为外部时使用的插件。 可以为空,仅应在外部云提供程序时设置。 当前用于允许节点和卷控制器在树云提供程序中工作。
特性开关
与kubernetes apiserver聊天时可使用。默认 30.
与 apiserver 交互时使用的数据类型,默认为 application/vnd.kubernetes.protobuf
与 apiserver 交互时使用的 QPS,默认 20
是否进行 leader 选举,可以保证高可用,默认为 true
leader 选举的租约时间,默认 15s
也是关于 leader 选举的时间,默认 10s,这个时间必须小于等于 --leader-elect-lease-duration
leader 选举时使用的 资源对象类型锁,默认为 “endpointsleases”,支持的选项为 endpoints (默认)和 “configmaps”
leader 选举时使用的 资源对象类型名字,默认为 kube-controller-manager
leader 选举时使用的 资源对象类型命名空间,默认为 kube-system
leader 选举重试间隔,默认 2s
反射器中的重新同步周期在MinResyncPeriod和2 * MinResyncPeriod之间是随机的,默认 12h
在 NodeController 中,同步 NodeStatus 的时间
【Cloud】云提供商为节点创建的路由协调时间,默认 10s
如果为true,则为每个控制器使用单独的 ServiceAccount 凭据。
允许同时同步的服务数,数量与服务管理响应速度有关,数量更大=服务管理响应速度更快,但CPU(和网络)负载更多,默认为 1
安全选项
监听的 IP 地址,默认为 0.0.0.0
证书目录
HTTP 流的连接数量限制,0意味着使用 golang 默认的。
监听的端口,默认 10257
证书文件
加密方法列表,全部的加密方式包括:
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_SHA
TLS 最小版本,可选值为 VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
私钥文件
证书文件名,不包括后缀,比如"example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com". (default [])
kubeconfig 文件地址,如果为空,则所有令牌请求均被视为匿名请求,并且不会在群集中查找任何客户端CA。
如果为false,则authentication-kubeconfig将用于从群集中查找缺少的身份验证配置。
The duration to cache responses from the webhook token authenticator. (default 10s)
如果为true,则无法从群集中查找缺少的身份验证配置失败是致命的。 请注意,这可能导致身份验证将所有请求视为匿名。
CA 文件
客户端证书通用名称列表,允许在--requestheader-username-headers指定的标头中提供用户名。 如果为空,则允许在--requestheader-client-ca-file中由授权机构验证的任何客户端证书。
在信任--requestheader-username-headers指定的标头中的用户名之前,用于验证传入请求上的客户端证书的根证书捆绑包。 警告:通常不依赖于传入请求已经完成的授权。
List of request header prefixes to inspect. X-Remote-Extra- is suggested. (default [x-remote-extra-])
List of request headers to inspect for groups. X-Remote-Group is suggested. (default [x-remote-group])
List of request headers to inspect for usernames. X-Remote-User is common. (default [x-remote-user])
跳过授权的 Path 列表,(default [/healthz])
指向具有足够权限以创建subjectaccessreviews.authorization.k8s.io的“核心” kubernetes服务器的kubeconfig文件。 这是可选的。 如果为空,则禁止所有未经授权请求。
The duration to cache 'authorized' responses from the webhook authorizer. (default 10s)
The duration to cache 'unauthorized' responses from the webhook authorizer. (default 10s)
Attachdetach controller 用于 操作 kubelet 使用到的 Volumn
卷连接分离之间的协调器同步等待时间。 此持续时间必须大于一秒,并且将此值从默认值开始增加可能会导致卷与Pod不匹配。 (默认为1m0s)
禁用卷附加分离协调程序同步。 禁用此功能可能导致卷与 Pod 不匹配。 谨慎使用。
Csrsigning controller用于管理签名
包含用于发布群集范围的证书的,包含PEM编码的X509 CA证书的文件名,默认为 /etc/kubernetes/ca/ca.pem
包含用于对群集范围的证书进行签名的PEM编码的RSA或ECDSA私钥的文件名,默认为 /etc/kubernetes/ca/ca.key
将给出签名证书的有效期限。默认 8760h,一年
允许同时同步的部署对象的数量。 更大的数量=更具响应性的部署,但更多的CPU(和网络)负载(默认5)
同步 deployment 的时间段。 (默认30秒)
允许同时同步的statefulset对象的数量。 较大的数量=响应状态集更多,但CPU(和网络)负载更多(默认5)
将同时完成的端点同步操作数。 更大的数量=更快的端点更新,但是更多的CPU(和网络)负载(默认5)
端点的长度将更新批处理周期。 Pod更改的处理将延迟此持续时间,以使它们与潜在的即将进行的更新结合在一起,并减少端点更新的总数。 较大的数量=较高的端点编程延迟,但是生成的端点修订版本数量较少
介绍:https://kubernetes.io/zh/docs/concepts/services-networking/endpoint-slices/
Endpoint Slices* 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。它们为 Endpoints 提供了一种可伸缩和可拓展的替代方案。
将同时完成的服务端点同步操作的数量。 更大的数量=更快的端点切片更新,但是更多的CPU(和网络)负载。 (默认为5)
将添加到EndpointSlice的最大端点数。 每个切片的端点越多,端点切片将越少,但资源却越大。 (默认为100)
查看介绍:https://kubernetes.io/zh/docs/concepts/workloads/controllers/garbage-collection/
Kubernetes 垃圾收集器的作用是删除某些曾经拥有所有者(owner)但现在不再拥有所有者的对象。
允许同时同步的垃圾收集器工作程序的数量。 (默认为20)
启用通用垃圾收集器。 必须与kube-apiserver的相应标志同步,默认为 true
启动后 Pod 可能会跳过CPU采样的时间段。 (默认为5m0s)
自动定标器将向后看的时间段,并且不会缩小到该时间段内的建议值以下。 (默认为5m0s)
Pod 启动后准备状态发生变化的时间段将被视为初始准备状态。 (默认30秒)
在水平容器自动缩放器中同步容器数的时间段。 (默认15秒)
水平 Pod 自动缩放器要考虑缩放比例时,期望值与实际度量值之比的最小变化(从1.0起)。 (默认为0.1)
允许同时同步的名称空间对象的数量。 较大的数字=响应性更好的名称空间终止,但是更多的CPU(和网络)负载,默认 10
同步名称空间生命周期更新的时间段(默认为5m0s)
群集中节点cidr的掩码大小。 IPv4的默认值为24,IPv6的默认值为64。
双栈群集中IPv4节点cidr的掩码大小。 默认值为24。
双栈群集中IPv6节点cidr的掩码大小。 默认值为64。
群集中服务的CIDR范围。 要求--allocate-node-cidrs为true
警告:Beta功能。 如果设置为true,则启用NoExecute Taints并将逐出在受此Taints污染的Node上运行的所有非容忍Pod。 (默认为true)
出于驱逐逻辑的目的,NodeController从中将群集视为较大的节点数。 对于此大小或更小的群集,--secondary-node-eviction-rate被隐式覆盖为0。 (默认为50)
如果某个区域处于健康状态,则在节点发生故障的情况下每秒删除Pod的节点数(请参阅--unhealthy-zone-threshold,以了解“健康” /“不健康”的定义)。 区域是指非多区域群集中的整个群集。 (默认为0.1)
在标记为运行状况不正常之前,我们允许运行的Node停止响应的时间。 必须是kubelet的nodeStatusUpdateFrequency的N倍,其中N表示允许kubelet发布节点状态的重试次数。 (默认40秒)
在标记为不正常之前,我们允许启动Node停止响应的时间。 (默认为1m0s)
删除故障节点上的Pod的宽限期。 (默认为5m0s)
当区域不健康时,如果节点发生故障,每秒删除Pod的节点数(有关健康/不健康的定义,请参阅--unhealthy-zone-threshold)。 区域是指非多区域群集中的整个群集。 如果群集大小小于--large-cluster-size-threshold,则此值隐式覆盖为0。 (默认0.01)
区域中的节点分数不需要准备就绪(最低3),才能将其视为不健康区域。 (默认为0.55)
为支持它的环境启用动态预配置。 (默认为true)
在没有云提供商的情况下运行时,请启用HostPath PV置备。 这允许测试和开发配置功能。 根本不支持HostPath置备,它不能在多节点群集中工作,并且除测试或开发外,不得用于其他任何用途。
Flex卷插件应在其中搜索其他第三方卷插件的目录的完整路径。
默认:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/
NFS洗涤器容器的每个Gi添加到ActiveDeadlineSeconds的时间增量(默认为30)
用于HostPath Recycler窗格的最小ActiveDeadlineSeconds。 这仅用于开发和测试,不适用于多节点群集。 (默认为60)
NFS回收站窗格使用的最小ActiveDeadlineSeconds(默认为300)
Pod定义的文件路径,用作HostPath持久卷回收的模板。 这仅用于开发和测试,不适用于多节点群集。
Pod定义的文件路径,用作NFS持久卷回收的模板
HostPath洗涤器容器的每个Gi添加到ActiveDeadlineSeconds的时间增量。 这仅用于开发和测试,不适用于多节点群集。 (默认为30)
同步永久卷和永久卷声明的时间段(默认为15秒)
在终止的Pod垃圾收集器开始删除终止的Pod之前可以存在的终止的Pod数。 如果<= 0,则禁用终止的pod垃圾收集器。 (默认为12500)
允许同时同步的副本集的数量。 较大的数量=副本管理响应速度更快,但CPU(和网络)负载更多(默认5)
允许同时同步的复制控制器的数量。 数量更多=副本管理响应速度更快,但CPU(和网络)负载更多 (默认为5)
允许同时同步的资源配额数。 更大的数量=响应性更强的配额管理,但更多的CPU(和网络)负载(默认5)
系统中配额使用状态的同步时间(默认值为5m0s)
允许同时同步的服务帐户令牌对象的数量。 较大的数字=响应令牌生成速度更快,但CPU(和网络)负载更多(默认5)
如果设置,则此根证书颁发机构将包含在服务帐户的令牌密钥中。 这必须是有效的PEM编码的CA捆绑包。
包含用于对服务帐户令牌进行签名的PEM编码的私有RSA或ECDSA密钥的文件名。
允许同时同步的TTL后完成的控制器工作程序的数量。 (默认为5)
具有授权和主位置信息的kubeconfig文件的路径。
Kubernetes API服务器的地址(覆盖kubeconfig中的任何值)。
If true, adds the file directory to the header
log to standard error as well as files
查看帮助
when logging hits line file:N, emit a stack trace (default :0)
If non-empty, write log files in this directory
If non-empty, use this log file
Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
Maximum number of seconds between log flushes (default 5s)
log to standard error instead of files (default true)
If true, avoid header prefixes in the log messages
If true, avoid headers when opening log files
logs at or above this threshold go to stderr (default 2)
number for the log level verbosity
Print version information and quit
comma-separated list of pattern=N settings for file-filtered logging